很多人在做數據的批量更新時..如果更新的內容是從其他表查出來的..很容易這么寫..
UPDATE TABLE1 SET COLUMN1=(SELECT SUM(SOMETHING) FROM TABLE2 WHERE COLUMN2=TABLE1.COLUMN2)
這樣的結構對於一般的小數據更新當然是沒問題的..因為體現不出劣勢..
但是到了數據量大了的時候..特別在后邊的查詢時..量大並且結構復雜的時候..
那一定會自食惡果..你就等吧..一條T-SQL執行個把小時..甚至計算速度后..發現要執行一天多的時候..就光剩下瞪眼了..
在這里嚴重推薦一下這種寫法..
UPDATE TABLE_1 SET COL_1=TT2.RESULT_COL_1,COL_2=TT2.RESULT_COL_2 FROM TABLE1 AS TT1 INNER JOIN (SELECT RESULT_COL_1,RESULT_COL_2 FROM TABLE_2) AS TT2 ON TT2.RELATION_COL=TT1.RELATION_COL
上邊的結構在查詢上只進行一次..更新進行的是最小次數..就是查詢出結果的行數..