sql server系统表损坏的解决方法_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置: 首页数据库MSSQL → sql server系统表损坏的解决方法

sql server系统表损坏的解决方法

时间:2021-09-09 01:02:36 来源:绿色软件之家 作者:网管联盟 我要评论(1)

如果sql server系统表损坏了,应该怎么办呢?下面就教您一个sql server系统表损坏的解决方法,供您参考,希望对您能够有所帮助。

sql server系统表损坏的解决方法

一、sql server数据库中三张重要的sql server系统表

sysobjects:在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。

sysindexes:数据库中的每个索引和表在表中各占一行。

syscolumns:每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。

这三张表用ID(表ID)字段关联。这三张系统表一旦损坏,与之对应数据库对象将无法访问,其作用相当于DOS中的"文件分配表" 。

二、sql server系统表损坏的症状

用 DBCC CHECKDB 携带任何参数都无法修复数据库,也就是说:DBCC CHECKDB对这个帐套根本不起作用;

无法执行如下操作:

select * from sysobjects 或select * from sysindexes 或select * from syscolumns ;

无法用SQL server DTS或其他SQL 脚本导库工具进行导库,导库的中途失败,报告:连接中断;

在企业管理器或查询分析器中,部分用户数据表无法访问。

三、处理方法

处理这种数据库,分为两个大的步骤:

第一步:处理可以访问的数据表

1)找出哪些表不可访问,即:sql server系统表中哪些记录损坏;

2)用SQL server DTS把能够访问的用户数据表导入一个新的DataBase 。

在导库时,不能选折(1)中不能访问的数据表。

第二步:处理不可访问的数据表:

1)找出系统表中错误记录的ID;

2)根据"错误记录的ID",删除sysobjects、sysindexes、syscolumns 表错误的记录;

3)根据"错误记录的ID" ,重建系统表记录;

4)重建完毕,如果该表可以访问,那么用DTS单独将此表导入新的DataBase。

说明:重建sql server系统表方式不一定会成功,比如由于DISK I/O错误,如果仅仅是保存系统表的磁盘扇区出错,那么重建系统表方式可以挽回数据。 如果保存用户数据表的磁盘扇区出错,那么即使重建系统表也不能解决问题。如果重要的用户数据表无法导库,如:t_Voucher、 IcStockbill、ICSale等,那么可以用用"第二步"中的方法一试。

关键词标签:sql server

相关阅读 优化SQL Server索引的小技巧 优化SQL Server数据库服务器的内存配置 优化SQL Server服务器内存配置的策略 用一个案例讲解SQL Server数据库恢复 怎样在SQL Server中去除表中不可见字符 怎样使用 SQL Server 数据库嵌套子查询

文章评论
发表评论

热门文章 浅谈JSP JDBC来连接SQL Server 2005的方法 浅谈JSP JDBC来连接SQL Server 2005的方法 SqlServer2005对现有数据进行分区具体步骤 SqlServer2005对现有数据进行分区具体步骤 sql server系统表损坏的解决方法 sql server系统表损坏的解决方法 MS-SQL2005服务器登录名、角色、数据库用户、角色、架构的关系 MS-SQL2005服务器登录名、角色、数据库用户、角色、架构的关系

相关下载

人气排行 配置和注册ODBC数据源-odbc数据源配置教程 如何远程备份(还原)SQL2000数据库 SQL2000数据库远程导入(导出)数据 SQL2000和SQL2005数据库服务端口查看或修改 修改Sql Server唯一约束教程 SQL Server 2005降级到2000的正确操作步骤 sql server系统表损坏的解决方法 浅谈JSP JDBC来连接SQL Server 2005的方法