2015-10-29 3 views
1

Я пытаюсь найти способ вывода данных, которые уже были выведены, а затем повторно вставлены (вид вывода/вставки x 2)Есть ли способ вставить вывод вывода

Вот код, который я бы использовал, может кто-то, пожалуйста, дайте мне знать, есть ли способ обойти это?

INSERT INTO table1 
(
Field1, Field2, Field3 
) 
OUTPUT 
inserted.values1, inserted.values2, insertedvalues3 
INTO table2 
(
Field1, Field2, Field3 
) 

OUTPUT 
inserted.values1, inserted.values2, insertedvalues3 -- from table2 
INTO table3 
(
Field1, Field2, Field3 
) 

SELECT values1, values2, values3 
FROM MasterTable 
+2

Пожалуйста, пометьте свой вопрос в базе данных, которую вы используете (что я бы предположил, это какая-то версия SQL Server). –

ответ

0

Создайте временную таблицу, а затем выполните - OUTPUT INTO - во временную таблицу. Затем вставьте значения в таблицу2 и таблицу3, выбрав из временной таблицы.

CREATE TABLE table1(Field1 INT, Field2 int, Field3 int); 
CREATE TABLE table2(Field1 INT, Field2 int, Field3 int); 
CREATE TABLE table3(Field1 INT, Field2 int, Field3 int); 

-- Our temporary table 
CREATE TABLE #results(Field1 INT, Field2 int, Field3 int); 

INSERT INTO table1(Field1, Field2, Field3) 
    OUTPUT inserted.Field1, inserted.Field2, inserted.Field3 
    INTO #results(Field1, Field2, Field3) 
VALUES (1, 2, 3) 

-- Now insert the "inserted" values into the two target tables 
INSERT INTO dbo.table2(Field1, Field2, Field3) 
SELECT Field1, Field2, Field3 FROM #results; 

INSERT INTO dbo.table3(Field1, Field2, Field3) 
SELECT Field1, Field2, Field3 FROM #results; 
Смежные вопросы