宣言された変数で KILL ステートメントを使用しようとしていますが、構文エラーが発生します。定数を使用せず、プログラムで SPID を変更する方法はありますか?
例えば:
DECLARE @SPID smallint
SET @SPID = 100
Kill @SPID
ところで、これは単なる例です。古い永続的なユーザー接続を取り除くには、カーソルを使用してループで kill を実行する必要があります。(聞かないで)
宣言された変数で KILL ステートメントを使用しようとしていますが、構文エラーが発生します。定数を使用せず、プログラムで SPID を変更する方法はありますか?
例えば:
DECLARE @SPID smallint
SET @SPID = 100
Kill @SPID
ところで、これは単なる例です。古い永続的なユーザー接続を取り除くには、カーソルを使用してループで kill を実行する必要があります。(聞かないで)
これには動的SQLが必要になると思います。動的 SQL を使用する前に、この重要なページをお読みください。
DECLARE @SPID smallint
DECLARE @SQL nvarchar(1000)
SET @SPID = 100
SET @SQL = 'KILL ' + CAST(@SPID as varchar(4))
EXEC (@SQL)
これは、PowerShellまたはC#を使用して、SMO経由でもいつでも実行できます。
この種のSQLサーバーとそれに付随するコードの管理は、PowerShellとSMOが得意とするものであり、T-SQLはときどき面倒なことがあります。