У меня есть временная таблица следующего образомкомплекса TSQL многорядная Вставка с оконечным
DECLARE @InsertedRows TABLE (RevId INT, FooId INT)
У меня также есть две других таблицы
Foo(FooId INT, MyData NVarchar(20))
Revisions(RevId INT, CreatedTimeStamp DATETIME)
Для каждой строки в Foo, мне нужно а) вставить строку в Revisions и b) вставить строку в @InsertedRows с соответствующими значениями Id из Foo и Revisions.
Я пытался писать что-то с помощью Insert Output Select следующим образом:
INSERT INTO Revisions (CURRENT_TIMESTAMP)
OUTPUT Inserted.RevId, Foo.FooId INTO @InsertedRows
SELECT FooId From Foo
Однако Foo.Id не допускается в списке Output столбцов. Кроме того, идентификатор, возвращаемый в SELECT, не вставлен в таблицу, так что это еще одна проблема.
Как я могу это решить?
Подготовьте полную схему (столбцы идентичности/...) и выборочные данные. http://sqlfiddle.com – lad2025