1. 程式人生 > >SQL批量更新 關係表更新

SQL批量更新 關係表更新

很多人在做資料的批量更新時..如果更新的內容是從其他表查出來的..很容易這麼寫..

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

上邊的結構在查詢上只進行一次..更新進行的是最小次數..就是查詢出結果的行數..