2013-02-21 52 views
9

我試圖使用聲明變量的KILL語句,但它給我一個語法錯誤。反正有沒有使用常量並以編程方式更改SPID?使用聲明變量的KILL

例如:

DECLARE @SPID smallint 
SET @SPID = 100 
Kill @SPID 

順便說一句,這只是一個例子。我需要使用遊標在循環中運行kill來擺脫舊的持久用戶連接。 (別問)

回答

13

我認爲你將需要動態SQL。請在執行任何動態SQL之前閱讀this essential page

DECLARE @SPID smallint 
DECLARE @SQL nvarchar(1000) 

SET @SPID = 100 

SET @SQL = 'KILL ' + CAST(@SPID as varchar(4)) 

EXEC (@SQL) 
1

你總是可以通過SMO做到這一點爲好,使用PowerShell或C#:

http://msdn.microsoft.com/en-gb/library/microsoft.sqlserver.management.smo.server.killprocess(v=sql.110).aspx

這種SQL Server和連同它的代碼管理正是PowerShell和SMO擅長,並且T-SQL有時可能會很煩躁。

+1

這是一段很短的路程 – JVC 2013-02-21 19:48:47

+0

是的,在這個例子中,一旦你掌握了它,你可以用SMO做這麼多事情。學習如何使用它(和PowerShell)爲SQL服務器管理的精簡和自動化開闢了一大堆機會。 – steoleary 2013-02-21 20:18:49