Многократная вставка SQL в таблицу идентификаторов - PullRequest
1 голос
/ 07 марта 2012

Мне нужно сделать вставку из таблицы со следующей структурой:

Table A
Col1    Col2    Col3    Col4
intID1  intID2  intID3  intID4

Мне нужно выбрать строки из приведенной выше таблицы, которые являются пустыми для col1, col2, col3, и вставить эти строкив таблицу, которая сгенерирует строку идентификатора, которую мне нужно использовать для вставки в другую таблицу. Я не уверен в операторе sql или общем методе, используемом для выбора этих строк и их многократной вставки и получения идентификатора идентификатора один за другимвставить в следующую таблицу.Любая помощь с благодарностью!

Пример процесса:

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 в другую таблицу

Ответы [ 3 ]

1 голос
/ 07 марта 2012

Венк прошел 1 и 2 этап, я думаю.Для 3 можно использовать предложение OUPUT для получения значения идентификатора из операции набора.

Получить идентификатор множественной вставки в SQL Server 2008

1 голос
/ 07 марта 2012

Похоже, вам нужен оператор 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;
1 голос
/ 07 марта 2012
INSERT INTO TABLEB(Col1,Col2,Col3,Col4)
SELECT * FROM TABLEA WHERE Col1 is NULL AND Col2 is NULL AND Col3 is NULL; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...