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