16

宣言された変数で KILL ステートメントを使用しようとしていますが、構文エラーが発生します。定数を使用せず、プログラムで SPID を変更する方法はありますか?

例えば:

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

ところで、これは単なる例です。古い永続的なユーザー接続を取り除くには、カーソルを使用してループで kill を実行する必要があります。(聞かないで)

4

2 に答える 2

22

これには動的SQLが必要になると思います。動的 SQL を使用する前に、この重要なページをお読みください。

DECLARE @SPID smallint
DECLARE @SQL nvarchar(1000)

SET @SPID = 100

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

EXEC (@SQL)
于 2013-02-21T19:36:46.420 に答える
1

これは、PowerShellまたはC#を使用して、SMO経由でもいつでも実行できます。

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

この種のSQLサーバーとそれに付随するコードの管理は、PowerShellとSMOが得意とするものであり、T-SQLはときどき面倒なことがあります。

于 2013-02-21T19:44:05.270 に答える