首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

解決 SQL Server 2005 生成腳本報錯「目標服務器版本不支持」

     編輯:關於SqlServer

問題現象

在 SQL Server Management Studio 中對 SQL Server 2005 數據庫執行「生成腳本」任務,目標版本選擇「SQL Server 2000」時,報錯:

「目標服務器版本不支持該對象或該對象的一個屬性」

根本原因

數據庫的兼容級別 仍設置為 SQL Server 2005 (90),導致腳本生成器嘗試腳本化 2005 專有特性(如 MAX 數據類型、PIVOT、TRY/CATCH 等),而目標版本 2000 不支持這些特性。

解決方法

  1. 在 SSMS 對象資源管理器中右鍵點擊目標數據庫 → 選擇「屬性」
  2. 在「選項」頁面中找到「兼容級別」
  3. 將其從 SQL Server 2005 (90) 改為 SQL Server 2000 (80)
  4. 點擊「確定」保存
  5. 重新執行「生成腳本」任務,目標版本選擇 SQL Server 2000,錯誤消失

原理說明

兼容級別控制數據庫引擎的語法解析行為:

  • 80 (SQL Server 2000):禁用 2005+ 新語法,腳本生成器只輸出 2000 兼容語法
  • 90 (SQL Server 2005):允許使用 2005 新特性,腳本中會包含不兼容語法

修改兼容級別不影響現有數據,僅影響新語法的解析與腳本生成。

注意事項

  • 生成腳本後,建議將兼容級別改回 90,以便應用繼續使用 2005 新特性
  • 若數據庫已使用 2005 專有特性(如 VARCHAR(MAX)、分區表等),降級腳本可能仍會失敗,需手動調整表結構
  • SQL Server 2008+ 版本同理,兼容級別對應:100 (2008)、110 (2012)、120 (2014)、130 (2016)、140 (2017)、150 (2019)、160 (2022)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved