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

SQL Server 2000 附加 2005 資料庫失敗:錯誤 602 解決與降級遷移完整流程

     編輯:關於SqlServer

錯誤現象

嘗試在 SQL Server 2000 附加 SQL Server 2005 資料庫檔案(.mdf/.ldf)時出現:


錯誤 602:對 sysindexes 執行 DBCC CHECKTABLE

根本原因

SQL Server 不支援向下相容附加。資料庫一旦附加到 2005,檔案結構即升級為 2005 格式(版本號 611+),2000 引擎(版本 539)無法識別。

正確降級遷移流程:腳本產生 + 資料匯出

步驟 1:在 SSMS 2005 產生相容 SQL 2000 的建構腳本

  1. 開啟 SSMS 2005 → 物件總管 (F8) 連線到 2005 執行個體
  2. 右鍵目標資料庫 → 任務 → 產生指令碼
  3. 「選擇資料庫」:確認目標資料庫
  4. 勾選「為所選資料庫中的所有物件編寫指令碼」
  5. 「選擇指令碼選項」→ 找到 「為伺服器版本編寫指令碼」 → 選擇 SQL Server 2000
  6. 其他選項視需求設定(建議:Schema + Data、含索引/觸發器/權限)
  7. 輸出至 .sql 檔案

步驟 2:在 SQL 2000 執行腳本建立空資料庫結構


-- 在查詢分析器連線 SQL 2000
-- 開啟步驟 1 產生的 .sql 檔案執行
-- 將建立資料庫、資料表、索引、檢視表、預存程序等結構

步驟 3:使用 DTS/匯入導出精靈遷移資料

  1. SSMS 2005 → 物件總管右鍵資料庫 → 任務 → 導出資料
  2. 「選擇資料來源」:確認 2005 來源資料庫
  3. 「選擇目的地」:連線 SQL 2000,選擇步驟 2 建立的目標資料庫
  4. 「選擇來源資料表與檢視表」:全選所有表
  5. 完成精靈,資料將逐表複製

替代方案:BCP 命令列大量複製


-- 導出(2005 端)
bcp "SELECT * FROM DB.dbo.Table1" queryout Table1.dat -S SourceServer -U user -P pwd -c -t, -r\n

-- 導入(2000 端)
bcp DB.dbo.Table1 in Table1.dat -S DestServer -U user -P pwd -c -t, -r\n -b 10000

適合超大資料表、需效能調優場景。

關鍵驗證點

檢查項目驗證方式
資料列數一致SELECT COUNT(*) FROM Table1 雙邊比對
主鍵/身分識別值DBCC CHECKIDENT 檢查種子值
外鍵關聯完整DBCC CHECKCONSTRAINTS
應用程式相容測試環境完整回歸測試

避坑提醒

  • 不要嘗試直接複製 .mdf/.ldf 檔案到 2000 附加 — 絕對失敗
  • 產生腳本時務必選擇 SQL Server 2000 目標版本,否則會包含 2005 專有語法(如 MAX、PIVOT、ROW_NUMBER)導致 2000 執行失敗
  • 資料類型對應:2005 VARCHAR(MAX) → 2000 TEXT,DATETIME2 → DATETIME,腳本精靈會自動轉換
  • 大量資料遷移建議:先停用索引/約束 → 匯入資料 → 重建索引/啟用約束
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved