2017-04-18 12 views
0

@@ROWCOUNTを使用して、影響を受けた行の数を数えます。SQL Serverで影響を受ける行の数をカウントします

DECLARE @TotCount INT 

DELETE * FROM TabA WHERE A = 'a' 
SET @TotCount = @TotCount + @@ROWCOUNT 

DELETE * FROM TabB WHERE B = 'b' 
SET @TotCount = @TotCount + @@ROWCOUNT 

UPDATE TabC SET C = 'c' WHERE C='d' 
SET @TotCount = @TotCount + @@ROWCOUNT 

しかし、スクリプトは、多くのDELETEUPDATE文を持っている状況を、と考えています。影響を受けるすべての行の数を一度に数える方法はありますか?

+0

'@@ ROWCOUNT'の値を' tempテーブル 'に '挿入'してから、' select'ステートメントを使ってそれを返します。 – csharpbd

+0

[この質問]の@Nicoの回答を確認してください(http://stackoverflow.com/questions/42542356/asp-net-sql-server-stored-procedure-return-message/42647179#42647179)。 – csharpbd

+0

@ csharpbd-スクリプトの最後で影響を受けた行の数を一度に取得したい –

答えて

0

私はこれまでに見つけたことはありません。 @@ ROWCOUNTは常に最後のステートメントの影響を受ける行の数であり、一度に1つのテーブルからしか削除できません。

挿入/更新/削除を一度に実行できるMERGEというコマンドがありますが、一度に1つのテーブルにしか影響しません。

+0

@@ ROWCOUNT以外の方法がありますか? –

+1

いいえ@@ ROWCOUNTは唯一のアプローチです – SpaceUser7448

関連する問題