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

SQL Server へのデータベース挿入後に最後に挿入された ID を取得する方法

DDD
リリース: 2025-01-21 23:12:13
オリジナル
339 人が閲覧しました

How to Retrieve the Last Inserted ID After a Database Insertion in SQL Server?

SQL Server データベースに挿入した後に最新の ID を取得します

データベースにデータを挿入した後、多くの場合、最後に挿入されたレコードの ID を取得する必要があります。シナリオを見てみましょう。aspnet_GameProfiles テーブルに行を挿入した後、自動的にインクリメントされる GamesProfileId を取得する必要があります。

次のコード スニペットは INSERT ステートメントを実行しますが、新しく生成された GamesProfileId をキャプチャするメカニズムがありません。これを実現するために、使用されている SQL Server のバージョンに基づいてさまざまな方法を検討します。

SQL Server 2005 以降 (挿入トリガーなし)

SQL Server 2005 以降の場合、aspnet_GameProfiles テーブルに挿入トリガーが定義されていない場合は、INSERT ステートメントを変更して OUTPUT 句を含めることができます。

<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId)
OUTPUT INSERTED.ID
VALUES(@UserId, @GameId)</code>
ログイン後にコピー

これにより、挿入された ID がクエリの出力として自動的に返されます。次のコードを使用して取得できます:

<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
...
SqlDataReader reader = myCommand.ExecuteReader();
reader.Read();
Int32 newId = reader.GetInt32(0);</code>
ログイン後にコピー

SQL Server 2000 または挿入トリガー

SQL Server 2000 を使用している場合、またはテーブルに挿入トリガーがある場合は、SCOPE_IDENTITY() 関数を使用できます。

<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId) 
VALUES(@UserId, @GameId);
SELECT SCOPE_IDENTITY()</code>
ログイン後にコピー

クエリの実行後、次のコードを使用して、最後に挿入された ID を取得できます:

<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
...
Int32 newId = (Int32) myCommand.ExecuteScalar();</code>
ログイン後にコピー

これらの手法を使用すると、最後に挿入された GamesProfileId を効率的に取得できるため、それをアプリケーションで後続の挿入やその他の操作に使用できるようになります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート