適用場景
高版本 SQL Server(如 2012/2014/2016)資料庫需還原至低版本(2008/2008 R2),直接備份/還原不支援降級,必須透過腳本模式遷移結構與資料。
操作步驟(SSMS 生成腳本精靈)
- 右鍵來源資料庫 → 工作 → 產生腳本...
- 選擇 進階 選項,關鍵設定:
• 指令碼目標資料庫引擎版本:選目標版本(如 SQL Server 2008)
• 資料類型:結構和資料 或 僅結構
• 包含 IF NOT EXISTS:True
• 索引/觸發器/約束:全勾選
- 選擇物件類型:資料表、檢視、函數、預存程序、使用者等全選或按需。
- 輸出選項:單一檔案、每個物件一檔、或直接到查詢視窗。
- 完成產生
.sql 腳本檔。

目標端執行注意事項
- 先建立空資料庫,相容性等級設為目標版本。
- 用
sqlcmd 或 SSMS 分批執行大腳本,避免記憶體溢位。
- 執行順序:結構 → 資料 → 索引/約束/觸發器(或依腳本順序)。
- 檢查錯誤日誌,修正不相容語法(如
DATE 型別、SEQUENCE、FILESTREAM 等新功能)。
替代工具
- SQL Package (DacFx):
SqlPackage.exe /Action:Export /SourceConnectionString:... /TargetFile:db.dacpac,再 /Action:Publish 到目標,自動處理版本差異。
- 第三方工具:Redgate SQL Compare / Data Compare、ApexSQL Diff,視覺化比對同步,適合複雜環境。