2

いくつかの SQL テーブルで動作する小さなプロセスがあります。テーブルはもともと Guid プライマリ キーでしたが、効率化のために BigInt ID に更新しています。

主キー テーブルに項目を追加し、次に外部キー テーブルにいくつかの項目を追加するバッチ挿入があります。Guid を使用すると、コードで Guid を作成してパラメーターに渡すので、これは簡単でした。

ID列の最適なアプローチは何ですか? 私はできることを知っています:

declare @id int 
insert into PrimaryKeyTable (...) Values (...)
select @id = Scope_Identity()

主キーを取得します。

バッチを 2 つに分割し、外部キー挿入のコードにパラメーターを戻す最善の方法はありますか? または、1 つの SQL ステートメントですべての挿入を行う方法はありますか? この問題に関する世論やベストプラクティスはありますか? ご指導ありがとうございます。

4

1 に答える 1

1

OUTPUTを使用する必要があります

INSERT...
OUTPUT INSERTED.ID

これにより、バッチ挿入が可能になり、バッチ化された ID ID と、明示的に出力するように設定したものすべてが吐き出されます。

于 2013-10-15T15:11:38.577 に答える