我有一张表说 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 中使用的范围 identity() 是否安全,即没有表名?