【发布时间】:2011-06-21 12:24:41
【问题描述】:
我需要从表中选择一些要更新的值,然后立即更新它们。此外,我需要在表中为每个更新的记录插入一个新记录。为了选择记录和更新,我使用了类似的结构
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 子句,我不能在一个语句中完成所有操作吗?
【问题讨论】:
标签: sql-server-2005 insert-select