ホームページ >データベース >mysql チュートリアル >SQL Server で最後の ID 値を取得するにはどうすればよいですか?
データベース プログラミングでは、挿入操作の後に主キー ID フィールドの値を取得することが重要です。この記事では、この目的のためのさまざまなメソッドを検証し、その機能とさまざまなシナリオへの適合性についての洞察を提供します。
@@IDENTITY は、現在のセッションで生成された最後の ID 値を取得します。
declare @t table ( id int identity primary key, somecol datetime default getdate() ) insert into @t default values select @@IDENTITY --returns 1
@@IDENTITY の欠点は、スコープに制限されていないことです。したがって、現在のトランザクション外のステートメントを含む、セッション内の任意のステートメントによって生成された最後の ID 値を返すことができます。
SCOPE_IDENTITY() は、トランザクション内で生成された最後の ID 値を取得します。現在のスコープ。これは、それを生成したステートメントとトランザクションに制限されます。
select SCOPE_IDENTITY() --returns 1
SCOPE_IDENTITY()は、返される ID 値が現在のスコープに固有であることを保証するため、@@IDENTITY と比較してより正確なメソッドです。
INSERT ステートメントで OUTPUT 句を使用すると、生成された ID 値を含む、挿入された行を含むテーブル。
Create Table #Testing ( id int identity, somedate datetime default getdate() ) insert into #Testing output inserted.* default values
OUTPUT は、複数の ID 値を一度に取得する便利な方法を提供します。単一のトランザクション。ただし、これは対象のテーブルに固有であり、追加のテーブル作成およびクリーンアップ操作が必要です。
最後の ID 値を取得する方法の選択は、アプリケーションの特定の要件によって異なります。
以上がSQL Server で最後の ID 値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。