SQL-Multiple插入标识表

时间:2012-03-06 20:25:49

标签: sql sql-server-2005 tsql

我需要从具有以下结构的表中进行插入:

Table A
Col1    Col2    Col3    Col4
intID1  intID2  intID3  intID4

我需要从上表中选择null的行 对于col1,col2,col3,将这些行插入到将生成标识的表中 我需要用来插入另一个表的行。我不确定 sql语句或用于选择那些行并将其多次插入并逐个检索身份ID以插入下一个表的一般方法。 任何帮助是极大的赞赏!

示例流程:

Table A
Col1 Col2 Col3 Col4
1     3    7    null
null null null  45   
null null null  67

1)检索第2行和第3行

2)将2和3插入另一个表以检索两行的身份ID

3)将步骤2中的身份插入另一个表

3 个答案:

答案 0 :(得分:1)

INSERT INTO TABLEB(Col1,Col2,Col3,Col4)
SELECT * FROM TABLEA WHERE Col1 is NULL AND Col2 is NULL AND Col3 is NULL; 

答案 1 :(得分:1)

答案 2 :(得分:1)

听起来你需要output运营商:

declare @TableA table(Col1 int, Col2 int, Col3 int, Col4 int);
declare @TableB table(id int identity(1,1), Col1 int, Col2 int, Col3 int, Col4 int);
declare @Audit table(id int);

insert into @TableA 
select 1,3,7,null union all
select null, null, null, 45 union all
select null, null, null, 67;

-- copy null columns from @TableA to @TableB
-- and output id's to @Audit
insert into @TableB
output inserted.id
into @Audit
select * 
from @TableA
where Col1 is null
and Col2 is null
and Col3 is null;

-- Copied @TableB values and @Audit values
select * from @TableB;
select * from @Audit;