ホームページ >データベース >mysql チュートリアル >SQL Server で最後の ID 値を取得する方法: @@IDENTITY、SCOPE_IDENTITY()、または OUTPUT?
最後の ID 値の取得: メソッドとスコープ
主キー ID を利用するテーブルを操作する場合、開発者は多くの場合、新しく挿入された ID の値。このタスクにはさまざまな方法が存在しますが、適切なアプローチを決定するには、スコープとパフォーマンスの考慮事項が重要な役割を果たします。
@@IDENTITY vs. SCOPE_IDENTITY()
両方 @ @IDENTITY および SCOPE_IDENTITY() は、接続内で生成された最後の ID 値を取得します。ただし、@@IDENTITY はスコープに制限されておらず、スコープに関係なく、前のクエリまたはトリガーによって生成された ID を返すことができます。一方、SCOPE_IDENT TY() は、ID が生成された特定の接続とクエリにスコープを制限し、必要な値のみを返すようにします。
OUTPUT メソッド
OUTPUT 句を使用して、INSERT ステートメント内の ID を取得できます。これをクエリに含めることで、新しく作成された ID 値を、挿入された他の列と一緒に返すことができます。このアプローチは便利ですが、ID 値のみが必要な場合にはパフォーマンスの低下につながる可能性があります。
適切なメソッドの選択
メソッドの選択は、特定のメソッドによって異なります。アプリケーションの要件:
OUTPUT メソッドのスコープ セーフ
OUTPUT メソッドはスコープ セーフです。つまり、同じクエリ内の現在のクエリによって生成された ID のみを返します。セッション。他のクエリまたはトリガーによって生成された ID は取得しません。これにより、データの整合性が確保され、意図しない副作用が防止されます。
以上がSQL Server で最後の ID 値を取得する方法: @@IDENTITY、SCOPE_IDENTITY()、または OUTPUT?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。