我需要從表中選擇一些值進行更新,然後立即更新它們。此外,我需要在每個更新記錄的表格中插入一條新記錄。要選擇記錄和更新我使用的是結構類似INSERT INTO SELECT UPDATE
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
條款?
不,我想'RecordID'並插入一個新行,不同的數據。 –
您將獲得所有更新行的記錄ID,您可以將其插入另一個表或另一列。 – DanNsk
你是對的,但如果'TableA'有任何限制,將無法工作... –