如何在不同的数据库中获取身份证?

时间:2012-05-09 18:56:12

标签: sql-server sql-server-2008 tsql

假设我在同一个实例下有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。 如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

采用不同的方法,您可以尝试使用'output'子句作为插入的一部分。

declare @output table (id int)

insert into DB2.dbo.tab2 (...)
output inserted.id2
into @output
values (...)

select @id2 = id from @output

我很确定这是输出语法,但我没有测试过它。