3

挿入ステートメントがあります:

insert into parentTbl
select firstId, secondId, thirdId, dateTm
from importTbl
where codeId = @codeIdParam

そのインサートが何かを挿入したかどうかを確実に確認する必要があります。@insertedCount理想的には、挿入された行数が0であっても、変数を設定したいと思います。

私は現在使用しています:

set @insertedCount = @@ROWCOUNT

しかし、それは挿入された行の最後の数を取得するだけのようです-問題は、INSERT SELECTステートメントが何も挿入しなかった場合、@@ROWCOUNTが0を返さないことです。

4

1 に答える 1

2

OUTPUT挿入された行ごとに1つの行を返す句を使用してみることができます。何かのようなもの:

insert into parentTbl
output inserted.firstId
select firstId, secondId, thirdId, dateTm
from importTbl
where codeId = @codeIdParam

これによりfirstId、挿入されたすべての行のsを含む結果セットが得られ、カウントを実行できます。
1つの方法はoutput into、table-varにselect count(*) from @tableVar移動し、最後にaを実行して挿入カウントを取得することです。

于 2010-07-13T11:15:33.090 に答える