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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM