ホームページ > データベース > mysql チュートリアル > どの SQL Server ID 値取得メソッド (@@IDENTITY、IDENT_CURRENT、SCOPE_IDENTITY、OUTPUT 句) を使用する必要がありますか?

どの SQL Server ID 値取得メソッド (@@IDENTITY、IDENT_CURRENT、SCOPE_IDENTITY、OUTPUT 句) を使用する必要がありますか?

Linda Hamilton
リリース: 2025-01-23 08:56:12
オリジナル
178 人が閲覧しました

Which SQL Server Identity Value Retrieval Method (@@IDENTITY, IDENT_CURRENT, SCOPE_IDENTITY, OUTPUT Clause) Should I Use?

SQL Server ID 値の取得: 実践ガイド

SQL Server では、新しく挿入された行の ID を取得する方法がいくつか提供されています。 各方法には長所と短所があり、特定のニーズに応じて選択します。このガイドでは、@@IDENTITYIDENT_CURRENTSCOPE_IDENTITY、および OUTPUT 句の違いを明確にします。

@@IDENTITYIDENT_CURRENT、および SCOPE_IDENTITY

の比較
  • @@IDENTITY: この関数は、テーブルに関係なく、現在のセッションで生成された最後の ID 値を返します。 セッション内の任意のテーブルから ID を取得するのに便利ですが、トリガーや同時操作の影響を受ける可能性があるので注意してください。

  • IDENT_CURRENT: セッションやスコープに関係なく、特定のテーブルに対して生成された最後の ID 値を取得します。 行を直接挿入しなかった場合でも、特定のテーブルの ID が必要な場合に最適です。

  • SCOPE_IDENTITY: 現在のセッションとスコープ内で生成された最後の ID 値を返します。 一般に、同じステートメント内の他の同時プロセスから分離されているため、最近挿入された行の ID を取得する場合に最適な選択肢です。

OUTPUT 句: 強力な代替手段

OUTPUT 句は、INSERT ステートメントから挿入された行に直接アクセスする方法を提供します。 ID 値を他の列データとともにテーブル変数または一時テーブルにキャプチャできます。 単純ではありますが、使用するのが少し複雑で、ステートメントがロールバックした場合でもデータが返されます。 重要なのは、トリガーの で実行されるため、トリガーで生成された ID 値は取得されません。ただし、並列処理を使用する場合に ID 値を取得する唯一の信頼できる方法が提供され、実行計画に関係なくその可用性が保証されます。

以上がどの SQL Server ID 値取得メソッド (@@IDENTITY、IDENT_CURRENT、SCOPE_IDENTITY、OUTPUT 句) を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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