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を元に、子テーブルに行を追加したい」だと勝手に思ってるから。