【SQL Server密技】一次精通SELECT INTO批次建表,效能優化的絕佳解決方案!
為什麼要把大表拆成小表一張上千萬筆的資料表,查詢愈跑愈慢、維護視窗愈拉愈長,這幾乎是每個後端工程師遲早會碰到的場景。把它依某種規則拆成多張較小的表,是其中一種權宜手段:查詢範圍縮小、維護單位變細、歸檔也比較好搬。 SQL Server 的 SELECT INTO 很適合做這件事——它能根據查詢結果直接生出一張新表,省去你先寫一段 CREATE TABLE 再 INSERT 的功夫。但它「省」掉的東西比你以為的多,這篇就把運作原理講清楚,順便把幾個照抄會直接報錯的地雷標出來。 SELECT INTO 到底複製了什麼先把最容易誤會的觀念釘死。執行這一句: 1SELECT * INTO 新資料表 FROM 來源資料表; SQL Server 會做的事是: 建立一張新表 複製來源欄位的「名稱、資料型別、可空性」,以及 IDENTITY 屬性 把符合條件的資料列寫進去 它不會複製的,才是重點:索引、主鍵、外鍵、DEFAULT、CHECK 等任何約束,全部都不跟過來。微軟官方文件對 INTO 子句的描述很直接:「來源表上定義的索引、約束與觸發程序不會轉移到新表,你也無法在 SELECT...




