SQL SERVER修复系统表错误不匹配的问题

   修复系统表(表错误- 对象 ID 2。text、ntext 或 image 节点(位于页 (1-875),槽 0,文本 ID 177078272)与该节点位于页 (1-500),槽 14 处的引用不匹配)

  修复数据库,应该是一个再熟悉不过的“陌生”东东了。以往修复就使用一般的修复语句即可,今天遇到一个顽固不化的错误,NND,

  报错信息如下:

  服务器: 消息 8929,级别 16,状态 1,行 1

  对象 ID 2: 在文本 ID 177078272 中发现错误,该文本的所有者是由 RID = (1:627:1) id = 1899153811 and indid = 10 标识的数据记录。

  服务器: 消息 8961,级别 16,状态 1,行 1

  表错误: 对象 ID 2。text、ntext 或 image 节点(位于页 (1:875),槽 0,文本 ID 177078272)与该节点位于页 (1:500),槽 14 处的引用不匹配。

  'YINYI' 的 DBCC 结果。

  'sysobjects' 的 DBCC 结果。

  对象 'sysobjects' 有 419 行,这些行位于 7 页中。

  'sysindexes' 的 DBCC 结果。

  对象 'sysindexes' 有 451 行,这些行位于 22 页中。

  CHECKDB 发现了 0 个分配错误和 2 个一致性错误(在表 'sysindexes' 中,该表的对象 ID 为 2)。

  'syscolumns' 的 DBCC 结果。

  CHECKDB 发现了 0 个分配错误和 2 个一致性错误(在数据库 'YINYI' 中)。

  DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

  这个是已经经过修复后仍然存在的问题,因为提示的是系统表sysobjects表存在问题,且有提示了RID及ID,我将此条数据查询出来,交核对了同类型的数据库,也就一个栏位不一样,且表示的是一个所影响的行数,其它并无相应的差别。本来打算放弃的,不过后又尝试着将一个经常会使用到的一个表的数据全部清除(truncate),再进行CHECKDB则不再出现错误。然后将此表中的数据先查询出来放到临时表,再清掉所有的数据,再从临时表中INSERT进来,此时再来CHECKDB,

  CHECKDB 发现了 0 个分配错误和0 个一致性错误(在数据库 'YINYI' 中)。

  DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

  大功告成,此现象说明了其实CHECKDB出来若存在系统表有问题的情况下,我们的系统不会那么容易坏的。你首先需要检查的是你平时会用到的表,即使是CHECKTABLE也不一定会出错,只能根据你软件中在哪一个点儿会弹错,分析用到的表,进行依次的排除。

  此篇文章写到这里希望遇到类似“表错误: 对象 ID 2。text、ntext 或 image 节点(位于页 (1:875),槽 0,文本 ID 177078272)与该节点位于页 (1:500),槽 14 处的引用不匹配”问题的朋友们细心点儿,希望对大家有帮助!

时间: 2024-10-31 14:35:30

SQL SERVER修复系统表错误不匹配的问题的相关文章

SQL Server 中系统表的作用

server sysaltfiles 主数据库 保存数据库的文件syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoledbusers 主数据库 链接服务器登陆信息sysprocesses 主数据库 进程sysremotelogins主数据库 远程登录帐号sysc

SQL Server 存储过程遇到“表 ''#TT'' 没有标识属性无法执行 SET 操作”错误_MsSql

创建临时表,往临时表插入数据的时候报的错误. 一开始提示没有打开主键,后来打开主键就提示上述错误异常. 从网上查找资料没有找到,然后又到群里问各位大牛,一位大牛告诉我是没有设置主键. 我又仔细看看提示,恍然大悟,我就给临时设置了主键. 没有主键之前的代码: CREATE TABLE #TT( CourseId INT , UserId INT, ClassId INT ) INSERT INTO #TT ( CourseId, UserId, ClassId ) SELECT CourseId,

SQL Server 存储过程遇到“表 ''#TT'' 没有标识属性无法执行 SET 操作”错误

创建临时表,往临时表插入数据的时候报的错误. 一开始提示没有打开主键,后来打开主键就提示上述错误异常. 从网上查找资料没有找到,然后又到群里问各位大牛,一位大牛告诉我是没有设置主键. 我又仔细看看提示,恍然大悟,我就给临时设置了主键. 没有主键之前的代码: CREATE TABLE #TT( CourseId INT , UserId INT, ClassId INT ) INSERT INTO #TT ( CourseId, UserId, ClassId ) SELECT CourseId,

将SQL Server中的表变成txt文件

方法一:用BCP命令 bcp 实用工具 bcp 实用工具在 Microsoft? SQL Server? 2000 实例和数据文件之间以用户指定的格式复数据. 语法 bcp {[[database_name.][owner].]{table_name | view_name} | "query"} {in | out | queryout | format} data_file [-m max_errors] [-f format_file] [-e err_file] [-F fir

SQL Server数据库状态监控 - 错误日志

无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志 Windows事件日志中,应用程序里的SQL Server和

2. SQL Server数据库状态监控 - 错误日志

原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志

如何将SQL Server中的表变成txt 文件

方法-:用BCP命令 bcp 实用工具 bcp 实用工具在 Microsoft SQL Server 2000 实例和数据文件之间以用户指定的格式复数据. 语法 bcp {[[database_name.][owner].]{table_name | view_name} | "query"}    {in | out | queryout | format} data_file    [-m max_errors] [-f format_file] [-e err_file]   

如何将SQL Server中的表变成txt文件

方法-:用BCP命令 bcp 实用工具 bcp 实用工具在 Microsoft SQL Server 2000 实例和数据文件之间以用户指定的格式复数据. 语法 bcp {[[database_name.][owner].]{table_name | view_name} | "query"} {in | out | queryout | format} data_file [-m max_errors] [-f format_file] [-e err_file] [-F first

SQL Server上进行表设计时表的主键设计问题

关于数据库的逻辑设计,是一个很广泛的问题.本文主要针对开发应用中遇到在MS SQL Server上进行表设计时,对表的主键设计应注意的问题以及相应的解决办法. 主键设计现状和问题 关于数据库表的主键设计,一般而言,是根据业务需求情况,以业务逻辑为基础,形成主键. 比如,销售时要记录销售情况,一般需要两个表,一个是销售单的概要描述,记录诸如销售单号.总金额一类的情况,另外一个表记录每种商品的数量和金额.对于第一个表(主表),通常我们以单据号为主键;对于商品销售的明细表(从表),我们就需要将主表的单