SQLServer锁表的解决方法
在SqlServer中,项目中需要写到存储过程,但是有些刚接触的小伙伴,可能会出现写了begin,没有end的情况,这种SQL语句可以保存到存储过程中,但是在执行存储过程的时候会出现锁的情况,这个时候就需要我们去进行解锁;
解锁语句如下:
第一步:
先运行下方的select语句,查询出 锁的进程;
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_tran_locks where resource_type='OBJECT'
第二步:
解锁语句,需要将第二行的锁表进程中的 @spid换成 上面查询出来的锁表进程;
declare @spid int
Set @spid = 86 --锁表进程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)
然后就可以正常使用啦