SQL多次插入标识表

SQL多次插入标识表,sql,sql-server-2005,tsql,Sql,Sql Server 2005,Tsql,我需要从具有以下结构的表中进行插入: Table A Col1 Col2 Col3 Col4 intID1 intID2 intID3 intID4 我需要从上表中选择空的行 对于col1、col2、col3,将这些行插入将生成标识的表中 我需要用来插入到另一个表中的行。我不确定 sql语句或用于选择这些行并多次插入它们并逐个检索标识id以插入到下一个表中的常规方法。 非常感谢您的帮助 示例过程: Table A Col1 Col2 Col3 Col4 1 3

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

Table A
Col1    Col2    Col3    Col4
intID1  intID2  intID3  intID4
我需要从上表中选择空的行 对于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步中的标识插入到另一个表中

我认为文克涵盖了第1步和第2步。对于3,可以使用OUPUT子句从set操作中检索标识值

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

听起来您需要
输出
操作符:

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;

我还需要为每个插入获取标识行“SCOPE_identity()”,如果我这样做,我是否能够获取每个标识值并从那里进行另一次插入?您是否可以发布一些示例数据n您所需的o/p?因此,您基本上只查找Col1、Col2中具有空值的行,Col3Identity是数据库在您插入到标识列时生成的值。我希望获得从表生成的每个标识号tat,并将其插入到另一个表的另一列中table@user1212140我有点困惑。Col4是您的标识列吗?您的意思是col1,2,3都为null,还是它们中的任何一个都为null?因此我需要获取col1,2和3中都为null的行