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

SQL Server 錯誤 602 解決:sysindexes 找不到條目,跨版本遷移腳本+導數據法則

     編輯:關於SqlServer

錯誤現象

Error 602: Could not find an entry for table/index in sysindexes.
Database may be corrupted. Run DBCC CHECKDB.

常見於:直接附加/還原跨版本資料庫 (2005→2000)、系統表不一致、頁面損壞。

鐵律:跨版本遷移「只能腳本+導數據,不能直接附加/還原」

降級 (2005→2000) 絕對不支援備份還原/附加。升級 (2000→2005/2008) 支援附加/還原,但建議腳本+導數據最乾淨。

SQL Server 2005 降級至 2000 標準流程

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

  1. SSMS → 物件總管 → 右鍵資料庫 → 工作 → 產生指令碼
  2. 選擇目標資料庫 → 勾選 為所選資料庫中的所有物件編寫指令碼
  3. 指令碼選項 → 為伺服器版本編寫指令碼 → SQL Server 2000
  4. 其他選項:索引、觸發器、外鍵、預設值、檢查約束全勾選
  5. 輸出至單一 .sql 檔案

步驟 2:在 SQL Server 2000 執行腳本建立空架構

  • 查詢分析器 / SSMS 連線 2000 執行個體
  • 開啟 .sql → 執行 (F5) → 建立資料庫、表、索引、預存程序、函數等

步驟 3:導入數據 (DTS / SSIS / BCP / 匯入匯出精靈)

  • SSMS 2005 → 右鍵來源資料庫 → 工作 → 匯出資料
  • 來源:SQL Server 2005 來源資料庫
  • 目的地:SQL Server 2000 目標資料庫 (步驟 2 建立)
  • 選擇所有表 → 完成

關鍵細節

項目注意事項
IDENTITY 欄位匯出時保留值需 SET IDENTITY_INSERT ON,精靈通常自動處理
TIMESTAMP/ROWVERSION不可手工插入,匯入後自動產生新值
計算欄位腳本含定義,資料不需匯入
大數據量分批次、停用非叢集索引、簡單復原模式、BCP 批次匯入
相容性2005 新型別 (varchar(max), xml, CLR) 在 2000 無對應,需改型別

若必須嘗試附加 (僅限升級/同版本)

  1. DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS 修復來源資料庫
  2. 卸離 → 複製 .mdf/.ldf → 目標附加
  3. 立即 DBCC CHECKDB 驗證

但強烈不建議,隱患難查。

總結

跨版本遷移鐵律:腳本建構架構 + 工具導入數據。直接附加/還原降級 = 錯誤 602/823/824 等系統表不一致噩夢。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved