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

SQL Server に新しく挿入された行の ID を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-23 09:16:14
オリジナル
488 人が閲覧しました

How to Retrieve the Identity of a Newly Inserted Row in SQL Server?

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 を取得するために一時テーブルまたは変数に送信できます。

最適なアプローチの選択

最適な方法は、特定のニーズによって異なります。

  • 同じセッション内のトリガーまたは別のステートメントから ID を取得する場合は、@@IDENTITY を使用します。
  • 挿入したばかりの行の ID については、SCOPE_IDENTITY() が推奨されるアプローチです。
  • IDENT_CURRENT('tableName') を使用して、最近レコードを挿入せずにテーブルの ID を取得します。
  • 単一のステートメントで複数の行から ID を取得する場合、またはエラーが発生した場合でも確実に ID を取得する場合は、OUTPUT 句を使用します。

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

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