SQL先插入資料後取回PK/Index值

在寫資料庫的時候一定會遇到先把資料寫入,再取回鍵值(Primary Key, PK)或AutoIndex自動增量值的情境,這時候你有三種方式可以選擇。

@@IDENTITY、SCOPE_IDENTITY和IDENT_CURRENT是類似的函數,因為它們都會傳回最後插入資料表之IDENTITY資料行的值。

SCOPE_IDENTITY與@@IDENTITY

SCOPE_IDENTITY和@@IDENTITY都會傳回資料表中所產生的最後一個識別值。

SCOPE_IDENTITY:執行這個程序會回傳目前當前作業的資料表中,最後增加的編號值。「範例:SELECT SCOPE_IDENTITY ();」

@@IDENTITY:這個就是回傳目前資料庫的所有作業中,最後一個新增的自動編號值,應該不會用到。「範例:SELECT @@IDENTITY」

IDENT_CURRENT

IDENT_CURRENT不受範圍和工作階段的限制;它只限於指定的資料表。IDENT_CURRENT會傳回在任何工作階段和任何範圍中,產生給特定資料表的識別值。「範例:SELECT IDENT_CURRENT('table name')」

參考網址:

  1. http://goo.gl/CmPyP
  2. http://goo.gl/uEWWU
SQL Command 先寫入資料再取回索引值