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()
:
<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 サイトの他の関連記事を参照してください。