[SQL] KILL指令

  • 269
  • 0

根據系統處理序(SPID)來結束使用者處理序。如果指定的 SPID 有許多工作需要復原,KILL 可能需要花一些時間才能完成,特別是復原一筆長交易時。 在 Microsoft SQL Server 2000 後,可以使用 KILL 終止正常的連線,亦即終止內部與所給定SPID 關聯的交易。 

-- 查詢鎖定的SPID
SELECT DISTINCT CONVERT(VARCHAR(5), a.spid, 4) as [SPID],
                CONVERT(VARCHAR(16), a.cmd) as [CMD]
FROM   master..sysprocesses a
WHERE  [SPID] IN (SELECT blocked
                FROM   master..sysprocesses)
       AND blocked = 0
ORDER  BY [SPID]

-- 砍掉招鎖定的SPID
KILL <SPID>

-- WITH STATUSONLY 的 KILL 命令不會終止或復原 spid 或 UOW。 只會顯示目前的進度報表。
KILL <SPID> WITH statusonly 

參考:

https://learn.microsoft.com/zh-tw/sql/t-sql/language-elements/kill-transact-sql?view=sql-server-ver16

http://cp0501.blogspot.com/2008/04/ms-sql-kill-id-spid-spid-kill.html