0

同じインスタンスの下に2つのデータベースDB1、DB2があるとします。各データベースには、次のような2つのテーブルがあります。

tab1(id1, ...): --id1 is identity column in DB1
tab2(id2,...) : --id2 is identity column in DB2

DB1SPには次のコードがあります。

use DB1
declare @id2 int;
insert into tab1(...) values (...);
insert into DB2.dbo.tab2(...) values (...);
set @id2 = SCOPE_IDENTITY();

しかし、id2の正しい値を取得できません。nullです。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

別のアプローチをとって、'output' 句を挿入の一部として使用することができます。

declare @output table (id int)

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

select @id2 = id from @output

これが出力の構文であると確信していますが、テストしていません。

于 2012-05-09T19:24:43.040 に答える