我正在使用表值参数在Table1中插入多行。 现在,我想使用一些值将Table1的范围标识插入到Table2中。 我该如何实现?
答案 0 :(得分:1)
您可以使用Output Clause子句,让我们看一个示例
假设您的Table1
看起来像这样
Table1(Table1_ID int identity, Name varchar(100), Email varchar(100), ...)
现在,我们可以插入并捕获所有新的ID和名称:
declare @OutputTbl table (ID INT, Name varchar(100))
insert into Table1(Name, Email)
output inserted.Table1_ID, inserted.Name into @OutputTbl(ID, Name)
VALUES ('john doe', 'john@somewhere.com'),
('Anna', 'Anna@1com')
select * from @OutputTbl
@OutputTbl中的结果将为
ID Name
-- --------
18 john doe
19 Anna
现在,您可以根据需要将@OutputTbl
的所有行插入另一个表中
insert into Table2 (Table1_ID, Name)
select ID, Name
from @OutputTbl