ホームページ >データベース >mysql チュートリアル >SQL Server で最後の ID 値を取得する方法: @@IDENTITY、SCOPE_IDENTITY()、または OUTPUT?

SQL Server で最後の ID 値を取得する方法: @@IDENTITY、SCOPE_IDENTITY()、または OUTPUT?

DDD
DDDオリジナル
2024-12-28 03:29:13975ブラウズ

How to Retrieve the Last Identity Value in SQL Server: @@IDENTITY vs. SCOPE_IDENTITY() vs. OUTPUT?

最後の ID 値の取得: メソッドとスコープ

主キー ID を利用するテーブルを操作する場合、開発者は多くの場合、新しく挿入された ID の値。このタスクにはさまざまな方法が存在しますが、適切なアプローチを決定するには、スコープとパフォーマンスの考慮事項が重要な役割を果たします。

@@IDENTITY vs. SCOPE_IDENTITY()

両方 @ @IDENTITY および SCOPE_IDENTITY() は、接続内で生成された最後の ID 値を取得します。ただし、@@IDENTITY はスコープに制限されておらず、スコープに関係なく、前のクエリまたはトリガーによって生成された ID を返すことができます。一方、SCOPE_IDENT TY() は、ID が生成された特定の接続とクエリにスコープを制限し、必要な値のみを返すようにします。

OUTPUT メソッド

OUTPUT 句を使用して、INSERT ステートメント内の ID を取得できます。これをクエリに含めることで、新しく作成された ID 値を、挿入された他の列と一緒に返すことができます。このアプローチは便利ですが、ID 値のみが必要な場合にはパフォーマンスの低下につながる可能性があります。

適切なメソッドの選択

メソッドの選択は、特定のメソッドによって異なります。アプリケーションの要件:

  • @@IDENTITY: 最も適切な場合に最適スコープに関係なく、最近の ID 値が必要です。
  • SCOPE_IDENTITY(): ID 値を特定のスコープまたはクエリに制限する必要がある場合に最適です。
  • IDENT_CURRENT(): 接続や接続に関係なく、特定のテーブルの ID 値が必要な場合に便利です。 scope.

OUTPUT メソッドのスコープ セーフ

OUTPUT メソッドはスコープ セーフです。つまり、同じクエリ内の現在のクエリによって生成された ID のみを返します。セッション。他のクエリまたはトリガーによって生成された ID は取得しません。これにより、データの整合性が確保され、意図しない副作用が防止されます。

以上がSQL Server で最後の ID 値を取得する方法: @@IDENTITY、SCOPE_IDENTITY()、または OUTPUT?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。