0
What is the difference between scope_identity() and current_identity()?

Scope_identity と current _identity はどちらも類似しており、テーブルで生成された最後の ID 値を返します。Scope_Identity は、現在スコープ内にあるテーブルの ID 値を返します

この質問の正しい定義ですか?

4

2 に答える 2

1

IDENT_CURRENT は、SQL Server 2000 の ID 関数 SCOPE_IDENTITY および @@IDENTITY に似ています。3 つの関数はすべて、最後に生成された ID 値を返します。

ただし、これらの各関数で last が定義されているスコープとセッションは異なります。

  • IDENT_CURRENT は、任意のセッションおよび任意のスコープで特定のテーブルに対して生成された最後の ID 値を返します。

  • @@IDENTITY は、すべてのスコープにわたって、現在のセッションの任意のテーブルに対して生成された最後の ID 値を返します。

  • SCOPE_IDENTITY は、現在のセッションおよび現在のスコープで任意のテーブルに対して生成された最後の ID 値を返します。

ソース

于 2013-10-05T06:26:39.033 に答える
0

@@身元

すべてのスコープにわたって、現在のセッションの任意のテーブルに対して生成された最後の ID 値を返します。

これを説明しましょう...テーブルに挿入トリガーを作成し、ID 列を生成して別のテーブルに行を挿入すると、@@IDENTITY はトリガーによって作成された ID レコードを返します。SCOPE_IDENTITY

現在のセッションおよび現在のスコープ内の任意のテーブルに対して生成された最後の ID 値を返します。

これを説明しましょう... ID列を生成して別のテーブルに行を挿入するテーブルに挿入トリガーを作成すると、SCOPE_IDENTITYの結果は影響を受けませんが、同じテーブルでトリガーまたはユーザー定義関数が影響を受ける場合作成された値はその ID レコードを返し、SCOPE_IDENTITY はトリガーまたはユーザー定義関数によって作成された ID レコードを返します。IDENT_CURRENT

任意のセッションおよび任意のスコープで特定のテーブルに対して生成された最後の ID 値を返します。

つまり、スコープとセッションの影響を受けず、特定のテーブルにのみ依存し、セッションまたはスコープで生成されたそのテーブル関連の ID 値を返すと言えます。

ここを見つける

于 2013-10-05T06:26:58.560 に答える