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   被锁表名

–根据锁表进程查询相应进程互锁的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 分享