SQL Serverで生成されたIdentity取得する方法

IDENTITY (プロパティ) (Transact-SQL)
http://msdn2.microsoft.com/ja-jp/library/ms186775.aspx


取得する方法は下記の3つがある。

  • @@IDENTITY
  • SCOPE_IDENTITY
  • IDENT_CURRENT

@@IDENTITY

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


@@IDENTITY (Transact-SQL)
http://msdn2.microsoft.com/ja-JP/library/ms187342.aspx

SCOPE_IDENTITY

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


SCOPE_IDENTITY (Transact-SQL)
http://msdn2.microsoft.com/ja-JP/library/ms190315.aspx

IDENT_CURRENT

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


IDENT_CURRENT (Transact-SQL)
http://msdn2.microsoft.com/ja-jp/library/ms175098.aspx

要するに

SCOPE_IDENTITYを使うのがベストだと思います。
Identityを取得したいシチュエーションのNo1は、「親テーブルに新しく行を追加した時に生成されたIDを元に、子テーブルに行を追加したい」だと勝手に思ってるから。