首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 2000 附加 SQL 2005 資料庫錯誤 602 解決方案:版本不相容、腳本遷移與匯出入資料三步走

     編輯:MySQL 資料庫相關知識

嘗試在 SQL Server 2000 附加 SQL Server 2005 的 .mdf 檔案,會拋出錯誤 602:「無法在 sysindexes 找到索引 ID 1 對應的列」。根因是 **資料庫檔案格式版本不相容**,2000 無法識別 2005 的內部結構。本文提供標準遷移三步走流程,徹底解決版本降級問題。

錯誤訊息

錯誤 602: 未能在 sysindexes 中找到資料庫 ID N 中物件 ID 1 的索引 ID 1 對應的列。
請對 sysindexes 執行 DBCC CHECKTABLE。

根因分析

  • SQL Server 2005 資料庫內部版本號 (611) > SQL Server 2000 支援上限 (539)。
  • 直接附加/還原**絕對失敗**,任何 DBCC CHECKDB、sp_attach_db 皆無效。
  • 必須透過**腳本重建結構 + 資料匯出入**完成降級遷移。

標準遷移三步走 (SSMS 2005 → SQL 2000)

步驟 1:產生相容 SQL 2000 的結構腳本

  1. SSMS 2005 → 物件總管 → 右鍵資料庫 → **工作** → **產生指令碼**。
  2. 「選擇資料庫」→ 勾選**「為所選資料庫中的所有物件編寫指令碼」**。
  3. 「指令碼選項」→ **「為伺服器版本編寫指令碼」→ 選 SQL Server 2000**。
  4. 其他選項依需求 (建議:INDEX=TRUE, TRIGGERS=TRUE, DRI=TRUE)。
  5. 儲存為 CreateSchema_2000.sql。

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

-- 在 Query Analyzer 或 SSMS 連線 SQL 2000
CREATE DATABASE NewDB_2000;
GO
-- 開啟並執行 CreateSchema_2000.sql

步驟 3:匯出入資料 (SSMS 2005 匯入匯出精靈)

  1. SSMS 2005 → 右鍵來源資料庫 → **工作** → **匯出資料**。
  2. 資料來源:選 SQL Server Native Client / .NET Provider,指定 2005 實例與資料庫。
  3. 目的地:選 SQL Server Native Client,指定 2000 實例與步驟 2 建立的 NewDB_2000。
  4. 「指定資料表複製或查詢」→ 選**「從來源資料庫複製資料表與檢視表」**。
  5. 勾選所有資料表 → 完成執行。

替代方案:bcp 大量複製 (適合超大資料量)

# 1. 匯出每張表 (需先建立格式檔或使用 -c 字元模式)
bcp SourceDB.dbo.TableName OUT TableName.dat -c -T -S SourceServer

# 2. 在 2000 建立表結構 (用步驟 1 的腳本)

# 3. 匯入
bcp TargetDB.dbo.TableName IN TableName.dat -c -T -S TargetServer

常見坑點與對策

問題對策
身分識別欄位 (IDENTITY) 匯入後種子值錯誤匯入後執行 DBCC CHECKIDENT ('TableName', RESEED) 或在匯出時保留身分識別值 (bcp -E)
大型文字/影像欄位 (TEXT/NTEXT/IMAGE) 截斷使用 bcp -N 原生模式或 SSIS 封裝
預設值/約束/觸發器遺失步驟 1 勾選完整選項、步驟 3 完成後對比 sp_help 結果
排序規則不一致導致中文亂碼建立 2000 資料庫時指定相同 Collation:CREATE DATABASE ... COLLATE Chinese_PRC_CI_AS

驗證清單

  • [ ] 所有資料表存在、欄位定義一致。
  • [ ] 關鍵資料表筆數與 2005 來源一致。
  • [ ] 應用程式連線 2000 執行核心功能測試通過。
  • [ ] 索引/統計資料已更新 (UPDATE STATISTICS / sp_updatestats)。

版本降級遷移的鐵律:**結構用腳本重建、資料用工具搬移、絕不直接附加檔案**。遵循此流程,SQL 2005 → 2000 遷移零風險。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved