私はcsvファイルから(Webアプリケーションを介して)SQL Serverデータベースに多くのデータ行をインポートします。私は、自動生成されたid値をクライアントに返す必要があります。複数の挿入文を使用する場合、SCOPE_IDENTITYを使用する方法はありますか?
これをループで実行すると、パフォーマンスは非常に悪くなりますが、問題なくSCOPE_IDENTITY()
を使用できます。
よりパフォーマンスソリューションは、このような方法だろう。
INSERT INTO [MyTable]
VALUES ('1'), ('2'), ('3')
SELECT SCOPE_IDENTITY()
は、すべての生成されたIDだけではなく、最後の生成されたIDを取得する方法はありますか?
ありがとうございました!
敬具、 トルステン
いいえ、 'SCOPE_IDENTITY()'はあなたに**最新の**挿入された 'IDENTITY'値のみを与えます。しかし、あなたはSQL Serverの 'OUTPUT'節をチェックすることができます.... –
あなたの削除された答えにコメントする:私はあなたが最初の行を削除し、' sqlBuilder.Append( "OUTPUT INSERTED.autoid" ); '。クライアントコードに出力したい場合は、出力をテーブル変数に入れる必要はありません。 –