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