我有一個表,說scope_test如下:來自表的範圍標識()和範圍標識()之間的性能差異?
create table scope_test
(
id int identity(1,1),
val varchar(100)
)
現在,當我在這個表中插入一行,並通過2個不同的SQL語句選擇範圍身份,我能看到在2條語句的性能差異:
insert into scope_test values('abcd')
select scope_identity() -- statement 1
select scope_identity() from scope_test -- statement 2
語句1根據執行計劃比語句2快:
我很好奇: 1.爲什麼這是性能差異,和 2.使用範圍標識()作爲語句1中使用的安全性,即沒有表名稱?
您應該只使用語句1.使用'from'子句查詢'scope_identity'是沒有意義的。 –
也許您正在查找或考慮['IDENT_CURRENT'](http://msdn.microsoft.com/zh-cn/library/ms175098.aspx)?當然,在具有任何併發性的系統中,這是一個毫無意義的功能。 –
謝謝@Damien_The_Unbeliever – Seasoned