最後に挿入された行の 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 または挿入トリガーを含むシナリオでは、少し異なる戦略が必要です。
INSERT
ステートメントを実行します。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 サイトの他の関連記事を参照してください。