1.首先我們需要判斷是哪個(gè)用戶鎖住了哪張表.
--查詢被鎖表select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT'
查詢后會返回一個(gè)包含spid和tableName列的表.
其中spid是進(jìn)程名,tableName是表名.
2.了解到了究竟是哪個(gè)進(jìn)程鎖了哪張表后,需要通過進(jìn)程找到鎖表的主機(jī).
--查詢主機(jī)名exec sp_who2 'xxx' xxx就是spid列的進(jìn)程,檢索后會列出很多信息,其中就包含主機(jī)名.
3.通過spid列的值進(jìn)行關(guān)閉進(jìn)程.
--關(guān)閉進(jìn)程declare @spid int Set @spid = xxx --鎖表進(jìn)程declare @sql varchar(1000)set @sql='kill '+cast(@spid as varchar)exec(@sql)
PS:有些時(shí)候強(qiáng)行殺掉進(jìn)程是比較危險(xiǎn)的,所以最好可以找到執(zhí)行進(jìn)程的主機(jī),在該機(jī)器上關(guān)閉進(jìn)程.
以上所述是小編給大家介紹的sqlserver進(jìn)程死鎖關(guān)閉的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對VeVb武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選