SQL Server 2008 で以前に削除されたレコードの数を選択する方法がわかりません。このようなものですか?
DELETE FROM [table] WHERE [id]=10
SELECT SCOPE_IDENTITY()
SQL Server 2008 で以前に削除されたレコードの数を選択する方法がわかりません。このようなものですか?
DELETE FROM [table] WHERE [id]=10
SELECT SCOPE_IDENTITY()
ステートメントSELECT @@ROWCOUNTの直後に使用します。詳細についてDELETEは、MSDNを参照してください。@@ROWCOUNT
@@ROWCOUNT最後のステートメントの影響を受けた行数を返します。
備考
..。
データ操作言語(DML)ステートメントは
@@ROWCOUNT、クエリの影響を受ける行数に値を設定し、その値をクライアントに返します。DMLステートメントは、クライアントに行を送信しない場合があります。
@@ROWCOUNT他のステートメントは、行自体に影響を与えない場合でも、の値を変更する可能性があるため、「直後」と言うことに注意してください。
DECLARE CURSOR値を1にFETCH設定します。@@ROWCOUNT..。
、、、、などのステートメント
USE、SET <option>または値を0にDEALLOCATE CURSORリセットします。CLOSE CURSORBEGIN TRANSACTIONCOMMIT TRANSACTIONROWCOUNT
することもできますSET NOCOUNT OFF。
備考
SET NOCOUNT が ON の場合、カウント (Transact-SQL ステートメントによって影響を受ける行の数を示す) は返されません。SET NOCOUNT が OFF の場合、カウントを返します。
ストアド プロシージャをデバッグするときは、通常、次のコード スニペットを使用します。
DELCARE @Msg varchar(30)
...
SELECT @Msg = CAST(@@ROWCOUNT AS VARCHAR(10)) + ' rows affected'
RAISERROR (@Msg, 0, 1) WITH NOWAIT
削除など、操作の前後に使用します。コード内のどのスニペットを使用しているかを追跡するために、メッセージに番号を入れます。多くのコード行を持つ大規模なストアド プロシージャを扱う場合に非常に役立ちます。