是否可以向SQL Update語句添加TOP或某種分頁?如何在批處理中執行SQL UPDATE,如更新頂端?
我有一個UPDATE
查詢,這可以歸結爲這樣的事:
UPDATE XXX SET XXX.YYY = #TempTable.ZZZ
FROM XXX
INNER JOIN (SELECT SomeFields ...) #TempTable ON XXX.SomeId=#TempTable.SomeId
WHERE SomeConditions
此更新將影響到數以百萬計的記錄,我需要做的是在批次。在當時像100.000(訂購無關緊要)
要做到這一點最簡單的方法是什麼?
'TOP'由什麼作爲排序?第二批在第一批完成的地方如何選擇? – 2012-01-11 14:06:27
一種可能性是在更新記錄每個記錄時,然後添加另一個子句,忽略已更新的記錄。這需要臨時向表中添加一列(除非有一些有效的方式來判斷記錄是否因爲更新本身而被更新)。 – ean5533 2012-01-11 14:08:23
Eh oke很簡單..我使用UPDATE TOP 100000進行了測試,但是這給出了'100000附近的錯誤語法',更新TOP(100000)似乎工作。 @MartinSmith:在我的情況下,「第二批」並不重要。當第一批更新時,它將不再符合條件。 – 2012-01-11 14:09:29