Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 insert select语句后如何获取主键值_Sql Server 2008 - Fatal编程技术网

Sql server 2008 insert select语句后如何获取主键值

Sql server 2008 insert select语句后如何获取主键值,sql-server-2008,Sql Server 2008,我需要创建一个包含许多步骤的SQL脚本 首先,我需要将数据插入到父表中 如何获取主键值列表 下面是一个我正在尝试执行的示例 MyParentTable MyParentID PK col1, col2, 可乐 -将值插入父表 insert into MyParentTable(col1,col2,col3) select SDATA1,SDATA2,SDATA3 from ExampleTables 我想得到我的新作品列表 怎么做 重要注释:考虑MyPARTABLE可以包含数据。 insert

我需要创建一个包含许多步骤的SQL脚本

首先,我需要将数据插入到父表中

如何获取主键值列表

下面是一个我正在尝试执行的示例

MyParentTable MyParentID PK col1, col2, 可乐

-将值插入父表

insert into MyParentTable(col1,col2,col3)
select SDATA1,SDATA2,SDATA3
from ExampleTables
我想得到我的新作品列表

怎么做

重要注释:考虑MyPARTABLE可以包含数据。

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;
如果涉及外键,则可能必须使用@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;
我将使用它需要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; 
我将使用它需要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; 

@Bogdan Sahlan,over子句链接应该是Output子句link@Jean-弗朗索瓦:我相信第一个是亚伦。非常感谢你们两个you@BogdanSahlean,over子句链接应该是Output子句link@Jean-弗朗索瓦:我相信第一个是亚伦。非常感谢你们两位