我需要从表中选择一些要更新的值,然后立即更新它们。此外,我需要在表中为每个更新的记录插入一个新记录。要选择记录和更新,我使用了类似的结构
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即使使用该子句,我也不能在一个语句中完成所有操作吗?