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

SQL Server に最後に挿入された ID を取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-21 22:57:10
オリジナル
551 人が閲覧しました

How to Retrieve the Last Inserted ID in SQL Server?

最後に挿入された行の ID の取得

SQL Server データベースと自動インクリメント主キーを操作する場合、最後に追加されたレコードの ID にアクセスすることが一般的な要件です。 このガイドでは、さまざまな SQL Server バージョンと挿入トリガーの存在の可能性を考慮して、これを実現するためのいくつかの方法を概説します。

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

バージョン 2005 以降では、合理化されたアプローチとして、OUTPUT INSERTED.ID 句を INSERT ステートメントに直接組み込むことが含まれます。この句は、新しく挿入された行の ID を効率的に返します。 以下に例を示します:

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

新しく生成された ID には、ExecuteScalar() オブジェクトの SqlCommand メソッドを介して簡単にアクセスできます。

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

SQL Server 2000 または挿入トリガーが存在する場合

SQL Server 2000 または挿入トリガーを含むシナリオでは、少し異なる戦略が必要です。

  1. 標準の INSERT ステートメントを実行します。
  2. SCOPE_IDENTITY() 関数を使用して、最後に挿入された ID 値を取得します。
<code class="language-sql">INSERT INTO aspnet_GameProfiles (UserId, GameId)
VALUES (@UserId, @GameId);
SELECT SCOPE_IDENTITY();</code>
ログイン後にコピー

前のメソッドと同様に、ExecuteScalar() を使用して結果の ID を取得できます。

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

これらのメソッドは、最後に挿入された行の ID を取得する効率的かつ信頼性の高い方法を提供し、後続のデータベース操作とのシームレスな統合を可能にします。

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

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