Если вы используете SQL Server 2005 или более позднюю версию, вы можете использовать предложение OUTPUT.
create table T(
pk int identity primary key,
dat varchar(20)
);
go
insert into T
output inserted.pk
values ('new item');
go
drop table T;
Вывод может быть направлен как на таблицу, так и на клиента. Например:
create table T(
pk int identity primary key,
dat varchar(20)
);
create table U(
i int identity(1001,1) primary key,
T_pk int not null,
d datetime
);
go
insert into T
output inserted.pk, getdate()
into U(T_pk,d)
values ('new item'), ('newer item');
go
select * from T;
select * from U;
go
drop table T, U;
Начиная с SQL Server 2008, вы можете использовать "составной DML" для большего количества возможностей.