Мне нужно выбрать некоторые значения из таблицы для обновления, а затем обновить их сразу. Кроме того, мне нужно вставить одну новую запись в таблицу для каждой обновленной записи. Для выбора записей и обновления я использую структуру типа
UPDATE TableA SET SomeField = 1 OUTPUT RecordID FROM TableA WHERE RecordID IN
(
SELECT TOP @Something RecordID FROM TableA
)
Теперь, для части вставки, я хотел бы заключить оператор UPDATE
в INSERT INTO SELECT
, используя, таким образом, предложение OUTPUT
. Тем не менее, SQL жалуется, когда я
INSERT INTO TableA SELECT ( RecordID , GETDATE() ) FROM
(
UPDATE TableA SET SomeField = 1 OUTPUT RecordID FROM TableA WHERE RecordID IN
(
SELECT TOP @Something RecordID FROM TableA
)
)
Разве я не могу сделать все это в одном выражении, даже с предложением OUTPUT
?