SCOPE_IDENTITY 和 @@IDENTITY 的做用都是取得返回在當前會話中的任何表內所生成的最後一個標識值,簡單的說就是在執行一條插入語句以後使用@@IDENTITY的全局變量,取得插入記錄的ID號可是有個問題就是,@@IDENTITY是全局的,因此在他的功能會體如今全部做用域,一個操做,一個觸發器,一個存儲過程叫作一個做用域,這時候若是出現多個做用域的狀況的時候,@@IDENTITY所取得的ID號就是最後一個做用域產生的結果。這時候咱們要使用SCOPE_IDENTITY方法來做了。SCOPE_IDENTITY 只返回插入到當前做用域中的值;@@IDENTITY 不受限於特定的做用域。
使用方法:select SCOPE_IDENTITY() as ID from [table]select @@IDENTITY as ID from [table]
實例:
sql="SET NOCOUNT ON;insert into [Table](Item) values('"&Item&"')"sql=sql&";select @@IDENTITY as ID from [Table];SET NOCOUNT OFF;"
在插入某些自增表的時候,須要將其打開:
語法:SET IDENTITY_INSERT TableName ON sql