SQL Server に新しく追加された行の ID の取得: @@IDENTITY、SCOPE_IDENTITY、IDENT_CURRENT、および OUTPUT 句の探索
ID 列を含むテーブルに行を追加する場合、多くの場合、新しく生成された ID を取得することが重要になります。 SQL Server はこれを実現するためのいくつかの方法を提供していますが、それぞれに独自の利点と制限があります。
@@IDENTITY
この関数は、現在のセッション内のすべてのテーブルにわたって最後に生成された ID 値を返します。 したがって、戻り値は、挿入したばかりの行の ID を必ずしも反映するとは限りません。 これは、同じセッション内で実行されるトリガーまたは別のステートメントから ID を取得するときに便利です。
SCOPE_IDENTITY()
SCOPE_IDENTITY() は、現在のセッションとスコープ内で生成された最後の ID 値を提供します。通常、追加した行の ID を取得するには、これが推奨される方法です。
IDENT_CURRENT('テーブル名')
この関数は、セッションやスコープに関係なく、特定のテーブルに対して生成された最後の ID 値を取得します。 これは、レコードを直接挿入していないテーブルの ID が必要な場合に役立ちます。
OUTPUT 句
INSERT ステートメントの OUTPUT 句を使用すると、ID 値を含む、そのステートメントによって挿入されたすべての行にアクセスできます。出力は、後で ID を取得するために一時テーブルまたは変数に送信できます。
最適なアプローチの選択
最適な方法は、特定のニーズによって異なります。
@@IDENTITY
を使用します。SCOPE_IDENTITY()
が推奨されるアプローチです。IDENT_CURRENT('tableName')
を使用して、最近レコードを挿入せずにテーブルの ID を取得します。OUTPUT
句を使用します。以上がSQL Server に新しく挿入された行の ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。