ホームページ >データベース >mysql チュートリアル >SQL の INSERT ステートメントの後に ID 値を取得するにはどうすればよいですか?
SQL INSERT ステートメントの後に新しく生成された ID 値を取得する
多くの場合、自動インクリメント ID 列を含む SQL テーブルにデータを挿入した後、新しく生成された ID にアクセスする必要があります。 OUTPUT
句は、これを実現する便利な方法を提供します。
このガイドでは、OUTPUT
句を使用して ID 値を取得する 2 つの一般的な方法を説明します。
方法 1: コンソールに出力します (その後、アプリケーションに出力します)
最も単純な方法は、ID 値をコンソールに直接出力します。 これは、単一の挿入を処理したり、アプリケーション コードで ID を取得したりするときに便利です:
<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>
アプリケーション コード (例: ADO.NET の ExecuteScalar()
を使用) は、この単一の出力値をキャプチャできます。
方法 2: テーブル変数への出力 (複数の挿入またはさらなる処理用)
複数の挿入の場合、または T-SQL コード内で生成された ID を処理する必要がある場合は、OUTPUT
句のターゲットとしてテーブル変数を使用します。
<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 access the ID(s) from @OutputTbl SELECT ID FROM @OutputTbl;</code>
この方法を使用すると、ストアド プロシージャまたは T-SQL スクリプト内で直接、挿入された複数の ID を操作できます。 一時テーブル (#temp
) または永続テーブルを出力ターゲットとして使用することもできます。
以上がSQL の INSERT ステートメントの後に ID 値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。