我有一个从多个表派生的临时表,需要将其插入到两个表(T1和T2)中。 T1有一个主键(自动生成),必须作为外键插入T2(一:多关系)
我知道是否使用了以下插入语句
INSERT INTO T1 (.....)
SELECT (.....) FROM X
我无法使用scope_identity,因为这只会给我最后一个自动生成的ID,以便在T2中使用。
除了使用光标或循环每行之外,还有哪些选项可用于确保跨表分割的记录之间的关系仍然存在?仅供参考,此插入过程定期发生,并且可以在两个表中包含1000多条记录。
答案 0 :(得分:3)
“输出条款”可以解决您的问题。一个例子
create table itest ( i int identity not null primary key, j int not null unique )
create table #new ( i int not null, j int not null)
insert into itest (j)
output inserted.i, inserted.j into #new
select o.object_id from sys.objects as o
select * from #new
drop table #new, itest;
go