sqlserver查詢鎖住sql以及解鎖的方法

–查看被鎖表:

SELECT  ????request_session_id?spid,  ????OBJECT_NAME(  ????????resource_associated_entity_id  ????)?tableName  FROM  ????sys.dm_tran_locks  WHERE  ????resource_type?=?'OBJECT'?  ORDER?BY?request_session_id?ASC  --spid???鎖表進程?  ????--tableName???被鎖表名

–根據(jù)鎖表進程查詢相應進程互鎖的SQL語句
DBCC INPUTBUFFER (249)

?— 解鎖:

?DECLARE  ????????@spid?INT  ????SET?@spid?=?52--鎖表進程  ????DECLARE  ????????@SQL?VARCHAR?(1000)  ????SET?@SQL?=?'kill?'?+?CAST?(@spid?AS?VARCHAR)?EXEC?(@SQL)

?–生成解鎖SQL

SELECT  ??DISTINCT??'DECLARE?@spid?INT?SET?@spid?=?',request_session_id,'?DECLARE?@SQL?VARCHAR?(1000)?SET?@SQL?=?''kill?''?+?CAST?(@spid?AS?VARCHAR)?EXEC?(@SQL);'??as?s  FROM  ????sys.dm_tran_locks  WHERE  ????resource_type?=?'OBJECT'???--spid???鎖表進程?  ????--tableName???被鎖表名

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享