🧾SSMS 執行 .SQL 檔一直「記憶體不足」?OutOfMemory 完整原因與解法:為什麼改用命令列工具就能成功
一、這個錯誤,其實很多公司每天都在發生 如果你在公司負責系統、資料庫或報表,很可能遇過這種情況: 你拿到一個 .sql 檔(可能是資料移轉、系統升級或客戶提供), 打開 SQL Server Management Studio(簡稱 SSMS )按下「執行」。 然後畫面出現: 無法執行指令碼 記憶體不足 OutOfMemoryException 有時還會看到: 接近 ':' 的語法錯誤 多數人第一反應會是: 是不是 SQL 寫錯? 資料庫壞掉? 伺服器 RAM 不夠? 其實都不是。 二、真正壞掉的不是資料庫,而是「工具」 讓我們用生活比喻。 想像: 資料庫 → 廚房 SQL 檔 → 一卡車食材 SSMS → 外送員 現在發生的事情是: 廚房其實可以煮, 但外送員試圖一次抱起整卡車的食材。 所以倒下的不是廚房,是外送員。 發生什麼技術上的事情? 當你按「執行」時,SSMS 不會直接交給資料庫。 它會先做一件很關鍵的動作: 先把整個 SQL 檔完整讀進電腦記憶體,再送給資料庫。 如果檔案非常大(例如幾百 MB、幾百萬筆資料): SSMS 自己就先爆記憶體了。 這就是 OutOfMemoryException。 也就是: SQL 還沒開始跑,工具先死了。 三、為什麼會出現「:r 語法錯誤」? 很多教學會說可以用一個「讀取外部檔案」的寫法,例如: :讀取 外部SQL檔 但如果你直接執行,卻看到: 接近 ':' 的語法錯誤 原因很單純: 你現在在「一般查...