如果sql server系統(tǒng)表損壞了,應該怎么辦呢?下面就教您一個sql server系統(tǒng)表損壞的解決方法,供您參考,希望對您能夠有所幫助。
一、sql server數據庫中三張重要的sql server系統(tǒng)表
sysobjects:在數據庫內創(chuàng)建的每個對象(約束、默認值、日志、規(guī)則、存儲過程等)在表中占一行。
sysindexes:數據庫中的每個索引和表在表中各占一行。
syscolumns:每個表和視圖中的每列在表中占一行,存儲過程中的每個參數在表中也占一行。
這三張表用ID(表ID)字段關聯。這三張系統(tǒng)表一旦損壞,與之對應數據庫對象將無法訪問,其作用相當于DOS中的"文件分配表" 。
二、sql server系統(tǒng)表損壞的癥狀
用 DBCC CHECKDB 攜帶任何參數都無法修復數據庫,也就是說:DBCC CHECKDB對這個帳套根本不起作用;
無法執(zhí)行如下操作:
select * from sysobjects 或select * from sysindexes 或select * from syscolumns ;
無法用SQL server DTS或其他SQL 腳本導庫工具進行導庫,導庫的中途失敗,報告:連接中斷;
在企業(yè)管理器或查詢分析器中,部分用戶數據表無法訪問。
三、處理方法
處理這種數據庫,分為兩個大的步驟:
第一步:處理可以訪問的數據表
1)找出哪些表不可訪問,即:sql server系統(tǒng)表中哪些記錄損壞;
2)用SQL server DTS把能夠訪問的用戶數據表導入一個新的DataBase 。
在導庫時,不能選折(1)中不能訪問的數據表。
第二步:處理不可訪問的數據表:
1)找出系統(tǒng)表中錯誤記錄的ID;
2)根據"錯誤記錄的ID",刪除sysobjects、sysindexes、syscolumns 表錯誤的記錄;
3)根據"錯誤記錄的ID" ,重建系統(tǒng)表記錄;
4)重建完畢,如果該表可以訪問,那么用DTS單獨將此表導入新的DataBase。
說明:重建sql server系統(tǒng)表方式不一定會成功,比如由于DISK I/O錯誤,如果僅僅是保存系統(tǒng)表的磁盤扇區(qū)出錯,那么重建系統(tǒng)表方式可以挽回數據。 如果保存用戶數據表的磁盤扇區(qū)出錯,那么即使重建系統(tǒng)表也不能解決問題。如果重要的用戶數據表無法導庫,如:t_Voucher、 IcStockbill、ICSale等,那么可以用用"第二步"中的方法一試。
關鍵詞標簽:sql server
相關閱讀 優(yōu)化SQL Server索引的小技巧 優(yōu)化SQL Server數據庫服務器的內存配置 優(yōu)化SQL Server服務器內存配置的策略 用一個案例講解SQL Server數據庫恢復 怎樣在SQL Server中去除表中不可見字符 怎樣使用 SQL Server 數據庫嵌套子查詢
熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現有數據進行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務器登錄名、角色、數據庫用戶、角色、架構的關系
時間:2021-12-07 11:55:49
時間:2021-08-31 12:47:01
時間:2021-08-31 11:47:50
時間:2021-07-26 21:36:24
時間:2021-05-14 16:16:18
時間:2020-03-03 16:29:24
人氣排行 配置和注冊ODBC數據源-odbc數據源配置教程 如何遠程備份(還原)SQL2000數據庫 SQL2000數據庫遠程導入(導出)數據 SQL2000和SQL2005數據庫服務端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法