カーソルを使用せずにレコードを一括挿入し、ID 値を取得する
複数のレコードをテーブルに挿入することは、データベース プログラミングの一般的なタスクです。特に、あるテーブルから別のテーブルにデータをコピーする場合、新しいレコードに対して生成された ID 値を取得することが望ましいです。この点に関して、Microsoft SQL Server 2005 は、OUTPUT 句を使用した効率的なソリューションを提供します。
テーブル B からテーブル A にデータが挿入される、提供されたコード スニペットを検討します。
Create Table A (id int identity, Fname nvarchar(50), Lname nvarchar(50)) Create Table B (Fname nvarchar(50), Lname nvarchar(50), NewId int) Insert into A(fname, lname) SELECT fname, lname FROM B
Toテーブル A に新しく挿入されたレコードの ID 値を取得するには、次の手法を使用できます。
OUTPUT 句
OUTPUT 句を使用すると、挿入、更新、または削除操作中に生成された値を取得できます。この場合、これを使用して、挿入された行の ID 値を取得できます。
DECLARE @output TABLE (id int) Insert into A (fname, lname) OUTPUT inserted.ID INTO @output SELECT fname, lname FROM B
テーブル変数 (@output) を作成し、OUTPUT Inserted.ID 式を指定することで、クエリに次のことを指示します。挿入されたレコードの ID 値を @output に返します。
テーブルのクエリ変数
挿入操作が完了したら、@output テーブル変数をクエリして ID 値を取得できます。
select * from @output
これにより、1 つの列 (id) を持つテーブルが表示されます。 ) 新しく挿入されたレコードの ID 値が含まれます。必要に応じて、これらの値を使用してテーブル B 内の対応するレコードを更新できます。
以上がカーソルを使用せずに SQL Server にレコードを一括挿入した後に ID 値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。