sql server 查詢所有被鎖表並批量解除


廢話不多說,直接上代碼:

--查詢被鎖表
select   request_session_id   spid,OBJECT_NAME(resource_associated_entity_id) tableName   
from   sys.dm_tran_locks where resource_type='OBJECT'

	declare @spid  int 
	--循環所有實驗室數據
	DECLARE Spid_Cursor CURSOR --定義游標
	FOR (select request_session_id spid
from sys.dm_tran_locks where resource_type='OBJECT' ) --查詢出被鎖表spid
	OPEN Spid_Cursor; --打開游標
	FETCH NEXT FROM Spid_Cursor INTO @spid; --讀取第一行數據
	WHILE @@FETCH_STATUS = 0
		BEGIN	
declare @sql varchar(1000)
set @sql='kill '+cast(@spid  as varchar)
exec(@sql)

			FETCH NEXT FROM Spid_Cursor INTO @spid; --讀取下一行數據
		END
	CLOSE Spid_Cursor; --關閉游標
	DEALLOCATE Spid_Cursor; --釋放游標	

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM