假设我在同一个实例下有2个数据库DB1,DB2。 我在每个数据库中有2个表,如:
tab1(id1, ...): --id1 is identity column in DB1
tab2(id2,...) : --id2 is identity column in DB2
我在DB1 SP中有以下代码:
use DB1
declare @id2 int;
insert into tab1(...) values (...);
insert into DB2.dbo.tab2(...) values (...);
set @id2 = SCOPE_IDENTITY();
但是我无法获得id2的正确值,它是null。 如何解决这个问题?
答案 0 :(得分:2)
采用不同的方法,您可以尝试使用'output'子句作为插入的一部分。
declare @output table (id int)
insert into DB2.dbo.tab2 (...)
output inserted.id2
into @output
values (...)
select @id2 = id from @output
我很确定这是输出语法,但我没有测试过它。