ホームページ >データベース >mysql チュートリアル >SQL Server の OUTPUT 句を使用して INSERT ステートメントの後に ID 値を取得するにはどうすればよいですか?

SQL Server の OUTPUT 句を使用して INSERT ステートメントの後に ID 値を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-17 12:26:10204ブラウズ

How Can I Retrieve Identity Values After an INSERT Statement Using SQL Server's OUTPUT Clause?

SQL Server の OUTPUT 句を使用して新しく生成された ID 値を取得する

SQL Server データベースにデータを挿入する場合、多くの場合、挿入された行に対して新しく生成された ID 値が必要になります。 OUTPUT 句は、これを達成するためのクリーンで効率的な方法を提供します。 この記事では、2 つの主要な方法について説明します。

方法 1: コンソールに出力するか、ExecuteScalar()

を使用して出力します。

非 T-SQL コンテキスト (.NET アプリケーションなど) で ID 値を迅速にデバッグしたり取得したりするために、OUTPUT 句で値を SSMS コンソールに直接送信することも、ExecuteScalar() を使用してキャプチャすることもできます。

<code class="language-sql">INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')</code>

.NET の場合:

<code class="language-csharp">int newId = command.ExecuteScalar();</code>

方法 2: テーブル変数または一時テーブルに出力する

T-SQL ストアド プロシージャまたはバッチ内で ID 値が必要なシナリオの場合、テーブル変数または一時テーブルが強力なソリューションを提供します。 OUTPUT 句は、挿入された ID 値をこのテーブルに指示し、T-SQL 環境内でのさらなる処理を可能にします。

<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT)

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

-- Now you can use the ID from @OutputTbl
SELECT ID FROM @OutputTbl;</code>

これらの技術により、開発者は INSERT ステートメントから生成された ID 値をシームレスに取得できるようになり、デバッグが容易になり、アプリケーションに値を返し、複雑な T-SQL ワークフローが可能になります。

以上がSQL Server の OUTPUT 句を使用して INSERT ステートメントの後に ID 値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。