2012-03-06 3 views
1

мне нужно сделать вставку из таблицы со следующей структурой:SQL-множественная вставка в таблицу идентичности

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 в другую таблицу для получения идентификационной идентификатор для обоих рядов

3) Вставьте тождества из шаг 2 в другую таблицу

+0

вы имеете в виду col1,2,3 являются все нуль, или любой из них равны нулю? – Phil

+0

, поэтому мне нужно получить те строки, которые все равны нулю для col 1,2 и 3 – user1212140

ответ

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

Мне нужно получить строку идентификатора для каждой вставки, а также «SCOPE_IDENTITY()« Если я сделаю это, я смогу получить каждый значение идентификатора и сделать еще одну вставку оттуда? – user1212140

+0

Можете ли вы опубликовать некоторые данные об образцах? – Teja

+0

Добавлен процесс выборки. – user1212140

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; 
+0

+1 спасибо за просмотр процесса – user1212140

Смежные вопросы