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 CURSOR
BEGIN TRANSACTION
COMMIT TRANSACTION
ROWCOUNT
することもできます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
削除など、操作の前後に使用します。コード内のどのスニペットを使用しているかを追跡するために、メッセージに番号を入れます。多くのコード行を持つ大規模なストアド プロシージャを扱う場合に非常に役立ちます。