SQL Server 備份後版本太舊無法還原
Aug 3, 2021
情境為 A 主機 Windows Server 2019 搭配 SQL Server 2019;B 主機為 Windows 7 搭配 SQL Server 2008 R2,但 Windows 7 又僅支援 SQL Server 2005、2008,因此在 A 主機上備份的資料無法還原至 B 主機。
評估後最終解決方式為使用 sqlcmd 指令碼來產生資料表結構以及匯入資料。
產生指令碼
1. 開啟 SSMS (SQL Server Management Studio)
2. 對著要備份的資料庫點「右鍵」→「工作」→「產生指令碼」
3. 簡介 (按下一步)
4. 選擇物件 (按下一步)
5. 點選「進階」
6. 設定兼容版本
7. 決定匯出結構或資料
8. 設定儲存檔案名稱
匯入指令碼
1. 開啟 cmd (盡量以系統管理員執行)
2. sqlcmd -S "SQLEXPRESS" -i "C:\Users\user\Desktop\script.sql"
3. 等待匯入完成
註一. 使用 SSMS 也可以匯入,但顯示記憶體不足的錯誤訊息怎麼辦?
指令碼不大的話可以用 SSMS,但如果指令碼過多請使用 sqlcmd 執行
註二. 「SQLEXPRESS」 為什麼沒有作用?
請根據你的 SQL Server 名稱,比如:「USER-PC\SQLEXPRESS」