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

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

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

时间:2021/9/9 1:02:36来源:IT猫扑网作者:网管联盟我要评论(0)

如果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

相关阅读 Access、SQL Server、Oracle常见应用的区别修改Sql Server唯一约束教程SQL Server 2005降级到2000的正确操作步骤SQL Server asp.net 数据提供程序连接池怎样使用 SQL Server 数据库嵌套子查询怎样在SQL Server中去除表中不可见字符

文章评论
发表评论

热门文章 SqlServer2005对现有数据进行分区具体步骤SqlServer2005对现有数据进行分区具体步骤sql server系统表损坏的解决方法sql server系统表损坏的解决方法MS-SQL2005服务器登录名、角色、数据库用户MS-SQL2005服务器登录名、角色、数据库用户Access、SQL Server、Oracle常见应用的区别Access、SQL Server、Oracle常见应用的区别

相关下载

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