ホームページ >データベース >mysql チュートリアル >INSERT ステートメントの後に SQL Server に最後に挿入された ID を取得する方法

INSERT ステートメントの後に SQL Server に最後に挿入された ID を取得する方法

DDD
DDDオリジナル
2025-01-21 23:02:11195ブラウズ

How to Retrieve the Last Inserted ID in SQL Server After an INSERT Statement?

SQL Server で新しく作成されたレコードの ID へのアクセス

このガイドでは、SQL Server 内の aspnet_GameProfiles テーブルに最後に挿入されたレコードの ID を取得する方法を説明します。 最適な方法は SQL Server のバージョンによって異なります。

SQL Server 2005 以降 (INSERT トリガーなし):

新しい SQL Server バージョンの最も効率的なアプローチは、OUTPUT ステートメント内で直接 INSERT 句を利用することです。

<code class="language-sql">INSERT INTO aspnet_GameProfiles (UserId, GameId)
OUTPUT INSERTED.ID
VALUES (@UserId, @GameId);</code>

その後、ExecuteScalar():

を使用して生成された ID を取得します。
<code class="language-csharp">Int32 newId = (Int32)myCommand.ExecuteScalar();</code>

この方法では余分なクエリが回避され、パフォーマンスが向上します。

SQL Server 2000 または INSERT トリガーを使用する場合:

INSERT トリガーを含む古い SQL Server バージョンまたはシナリオの場合は、SCOPE_IDENTITY() 関数を使用します。

<code class="language-sql">INSERT INTO aspnet_GameProfiles (UserId, GameId)
VALUES (@UserId, @GameId);
SELECT SCOPE_IDENTITY();</code>

取得した ID には、ExecuteScalar():

を使用してアクセスできます。
<code class="language-csharp">Int32 newId = (Int32)myCommand.ExecuteScalar();</code>

これらの方法のいずれかを使用すると、新しく生成された ID を aspnet_GameProfiles からシームレスに取得でき、この情報を必要とする後続の操作が可能になります。

以上がINSERT ステートメントの後に SQL Server に最後に挿入された ID を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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