Я мог бы использовать ваш опыт. У меня есть следующий код:Вставить в ... Объединить ... Выбрать (SQL Server)
INSERT INTO Table3 (Column2, Column3, Column4, Column5)
SELECT null, 110, Table1.ID, Table2.Column2
FROM Table1
JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1
JOIN Table2 on Table1Table2Link.Column2=Table2.ID
Теперь мне нужно взять Inserted.ID (Идентичность Table3, которая генерируется на вставке) и table2.id и вставить их в любой временной таблицы или табличной переменной. Обычно я бы использовал предложение OUTPUT, но OUTPUT не может получать данные из разных таблиц. Теперь я считаю, что это можно сделать с MERGE, но я не уверен, как это сделать. Мне нужно что-то вроде:
INSERT INTO Table3 (Column2, Column3, Column4, Column5)
OUTPUT Inserted.ID, Table2.ID into @MyTableVar
SELECT null, 110, Table1.ID, Table2.Column2
FROM Table1
JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1
JOIN Table2 on Table1Table2Link.Column2=Table2.ID
Прошу прощения, если это дублирующий вопрос, но я ничего не нашел.
Вам может понадобиться сделать это путем вставки значения, которые вы хотите вставить во временную таблицу, а затем с помощью 'OUTPUT', чтобы получить новое выходное значение. –