Я бы согласился, я думаю, что документация немного вводит в заблуждение. SCOPE_IDENTITY
сохраняет свое значение в нескольких пакетах, непосредственно выполненных в одном соединении.
Но учтите, что если вы создаете внутреннюю партию, выполняя EXEC
со строкой, то SCOPE_IDENTITY
этой внутренней партии не зависит от вашей внешней партии SCOPE_IDENTITY
Этот скрипт выдает значение 2
, а не 5
:
create table T1 (ID int IDENTITY(2,1000) not null,Val char(1))
create table T2 (ID int IDENTITY(5,1000) not null, Val char(1))
go
insert into T1(Val) values ('a')
exec('insert into T2(Val) values (''b'')')
select SCOPE_IDENTITY()