ホームページ >データベース >mysql チュートリアル >SQL Server で INSERT 後に自動生成された ID を取得するにはどうすればよいですか?

SQL Server で INSERT 後に自動生成された ID を取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-17 13:16:11862ブラウズ

How to Retrieve the Auto-Generated ID After an INSERT in SQL Server?

SQL Server INSERT 操作後の自動生成 ID の取得

SQL Server テーブルに新しいデータを追加するには、自動生成された ID 列が必要になることがよくあります。 このガイドでは、INSERT ステートメントの後に新しく生成された ID を効率的に取得する方法を説明します。 SQL Server の OUTPUT 句は、クリーンなソリューションを提供します。

OUTPUT 条項の解決策

OUTPUT 句を使用すると、新しく挿入された行から返される列を指定できます。これは、自動生成された ID を取得するのに最適です。

構文:

<code class="language-sql">INSERT INTO YourTable (column1, column2, ...)
OUTPUT Inserted.IDColumn  -- Replace IDColumn with your actual ID column name
VALUES (value1, value2, ...);</code>

説明:

  • Inserted: 新しく挿入された行を含む一時テーブル。 ターゲットテーブルの構造を反映します。
  • IDColumn: 自動生成された ID 列の名前。 このプレースホルダーを列の実際の名前に置き換えます。

例:

Customers テーブルがあるとします。

<code class="language-sql">CREATE TABLE Customers (
  CustomerID INT IDENTITY(1, 1) PRIMARY KEY,
  CustomerName VARCHAR(255) NOT NULL
);</code>

新しい顧客を挿入して CustomerID を取得するには、次を使用します:

<code class="language-sql">INSERT INTO Customers (CustomerName)
OUTPUT Inserted.CustomerID
VALUES ('Acme Corp');</code>

これは、新しく生成された CustomerID を返します。その後、この値をその後のクエリで使用したり、変数に保存したりできます。

重要な注意: OUTPUT 句は単一の列に限定されません。 OUTPUT 句内でカンマ区切りでリストすることにより、挿入された行から複数​​の列を取得できます。

以上がSQL Server で INSERT 後に自動生成された ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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