我需要从具有以下结构的表中进行插入:
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中的身份插入另一个表
答案 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;