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 サイトの他の関連記事を参照してください。