我需要创建一个包含许多步骤的SQL脚本。
首先,我需要将数据插入父表。
如何获取主键值列表
以下是我正在尝试执行的示例。
MyParentTable MyParentID PK COL1, COL2, COL3
- 将值插入父母表
insert into MyParentTable(col1,col2,col3)
select SDATA1,SDATA2,SDATA3
from ExampleTables
我想获取新条目的列表。
怎么做?
重要说明:请考虑MyParentTable可以包含数据。
答案 0 :(得分:2)
insert into dbo.MyParentTable(col1,col2,col3)
output inserted.identity_column_name
select SDATA1,SDATA2,SDATA3
from dbo.ExampleTables;
如果涉及外键,您可能必须使用@table变量进行临时保留。
DECLARE @t TABLE(id INT);
insert into dbo.MyParentTable(col1,col2,col3)
output inserted.identity_column_name INTO @t
select SDATA1,SDATA2,SDATA3
from dbo.ExampleTables;
SELECT id FROM @t;
答案 1 :(得分:2)
我会使用OUTPUT clause(它需要SQL Server 2005):
DECLARE @Orders TABLE
(
order_nbr INT PRIMARY KEY,
tname VARCHAR(25),
prod_type INT
);
DECLARE @OrderNumbers TABLE (order_nbr INT PRIMARY KEY);
INSERT INTO @Orders (order_nbr, tname, prod_type)
OUTPUT inserted.order_nbr INTO @OrderNumbers
SELECT 1,'', '1'
UNION ALL SELECT 2,'', '1'
UNION ALL SELECT 3,'', '2';
SELECT * FROM @OrderNumbers;