ホームページ > データベース > mysql チュートリアル > カーソルを使用せずに SQL Server 2005 に複数のレコードを挿入した後に ID 値を取得する方法

カーソルを使用せずに SQL Server 2005 に複数のレコードを挿入した後に ID 値を取得する方法

Susan Sarandon
リリース: 2024-12-31 13:29:10
オリジナル
380 人が閲覧しました

How to Retrieve Identity Values After Inserting Multiple Records in SQL Server 2005 Without Cursors?

複数のレコードの挿入と ID 値の取得

ID 列を含むテーブルに複数のレコードを挿入する場合、新しく生成された ID 値の取得は、後続のデータ操作にとって重要になる可能性があります。 。この記事では、Microsoft SQL Server 2005 でカーソルを使用せずにこれを実現する方法について説明します。

問題の説明

次のシナリオを考えてみましょう: ID 列 (id) を持つ 2 つのテーブル、テーブル A があります。表 B には関連データが含まれています。テーブル B からテーブル A にレコードを挿入し、それぞれの ID 値を取得してテーブル B の NewId 列を更新したいと考えています。

ソリューション

SQL Server 2005 には、OUTPUT 句を介した便利なメカニズムが用意されています。挿入操作中に生成された ID 値を取得します。次のコードは、この機能の使用方法を示しています。

DECLARE @output TABLE (id int)

INSERT INTO A (fname, lname)
OUTPUT INSERTED.id INTO @output
SELECT fname, lname FROM B
ログイン後にコピー

このクエリは、テーブル B からテーブル A にレコードを挿入し、@output というテーブル変数に ID 値を格納します。テーブル変数 @output には、新しく生成された ID 値を含む 1 つの列 (ID) が含まれており、それらを取得してさらなる処理に使用できます。

テーブルとデータの例を検討してください。問題の説明に記載されています。上記のコードを実行すると、

-- Insert records into Table A and retrieve identity values
DECLARE @output TABLE (id int)

INSERT INTO A (fname, lname)
OUTPUT INSERTED.id INTO @output
SELECT fname, lname FROM B

-- Display the identity values in the table variable
SELECT * FROM @output
ログイン後にコピー

結果は、挿入された行の ID 値を含むテーブルになります。

id
-------
1
2
3
ログイン後にコピー

これらの ID 値は、NewId の更新に使用できます。表 B の列もそれに応じて変更されます。

以上がカーソルを使用せずに SQL Server 2005 に複数のレコードを挿入した後に ID 値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート