2013-05-08 43 views
0

我正在嘗試查找並終止在其中一個表上設置了鎖的會話,並且正在停止執行許多其他查詢。對於我使用下面的腳本:SQL Server中的負SPID?

SELECT REQUEST_MODE, REQUEST_TYPE, REQUEST_SESSION_ID 
FROM sys.dm_tran_locks 
WHERE RESOURCE_TYPE = 'OBJECT' 
AND RESOURCE_ASSOCIATED_ENTITY_ID =(SELECT OBJECT_ID('System')) 

的結果集我得到的是如下:

enter image description here

運行EXEC sp_who2不帶負SPID返回任何一行。我如何找到鎖定我的表的會話?

回答

5

sys.dm_tran_lockREQUEST_SESSION_ID

值-2指示該請求屬於孤立的分佈式事務。

因此,這裏沒有實際的會話ID。閱讀的言論應該引起你KILL

使用KILL UOW終止孤立的分佈式事務。這些事務不與任何實際會話ID關聯,而是與會話ID ='-2'人爲關聯。通過查詢sys.dm_tran_locks,sys.dm_exec_sessions或sys.dm_exec_requests動態管理視圖中的會話ID列,此會話ID可以更容易地識別孤立的事務。

+0

非常感謝! – 2013-05-08 08:18:09

+0

+1有一個涉及鏈接服務器的遷移腳本出現此問題。 – mCasamento 2013-12-04 06:11:25