程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> sqlserver過程逝世鎖封閉的辦法

sqlserver過程逝世鎖封閉的辦法

編輯:MSSQL

sqlserver過程逝世鎖封閉的辦法。本站提示廣大學習愛好者:(sqlserver過程逝世鎖封閉的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是sqlserver過程逝世鎖封閉的辦法正文


1.起首我們須要斷定是哪一個用戶鎖住了哪張表.

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

查詢後會前往一個包括spid和tableName列的表.

個中spid是過程名,tableName是表名.

2.懂得到了畢竟是哪一個過程鎖了哪張表後,須要經由過程過程找到鎖表的主機.

--查詢主機名
exec sp_who2 'xxx' 
xxx就是spid列的過程,檢索後會列出許多信息,個中就包括主機名.

3.經由過程spid列的值停止封閉過程.

--封閉過程
declare @spid int 
Set @spid = xxx --鎖表過程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql) 

PS:有些時刻強行殺失落過程是比擬風險的,所以最好可以找到履行過程的主機,在該機械上封閉過程.

以上所述是小編給年夜家引見的sqlserver過程逝世鎖封閉的辦法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved