DBCC CHECKTABLE失败,如何处理?

cgoo_0102 2015-08-14 11:08:08
数据库是以前因为服务器损坏 直接从硬盘拷出来 附加的。
现在出现个问题 就是在SSMS里面可以看到表,
例如‘gdownloadqueue_20140920’

但查询这个表时 select 1 from gdownloadqueue_20140920 却报错
消息 0,级别 11,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。
消息 0,级别 20,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。

使用DBCC CHECKTABLE('gdownloadqueue_20140920') 提示
消息 2501,级别 16,状态 45,第 1 行
找不到名为 "gdownloadqueue_20140920" 的表或对象。请检查系统目录。

查询select * from sys.tables和select * from sysobjects where xtype='U' 都可以找到这个表


SELECT * FROM sys.tablesWHERE name='gdownloadqueue_20140920' 和
SELECT * FROM sysobjects WHERE name='gdownloadqueue_20140920' and xtype='U' 却找不到记录

查询select * from syscolumns 会报错
消息 0,级别 11,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。
消息 0,级别 20,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。
...全文
565 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2015-08-15
  • 打赏
  • 举报
回复
建议用dbcc checkdb()试试,如果无法修复, 则直接找最近的一个数据备份出来恢复,然后单独抽取这个表的数据.
LongRui888 2015-08-14
  • 打赏
  • 举报
回复
引用 4 楼 cgoo_0102 的回复:
dbcc checktable('表的名称',REPAIR_ALLOW_DATA_LOSS) dbcc checktable('数据表的名称',REPAIR_REBUILD) 提示是 消息 8967,级别 16,状态 131,第 5 行 DBCC 中出现内部错误,无法继续处理。请与客户支持服务部门联系。 消息 8967,级别 16,状态 131,第 6 行 DBCC 中出现内部错误,无法继续处理。请与客户支持服务部门联系。 暂时没考虑把数据转移出来,先看能否恢复,因为一直在用,停不了。
数据要转移出来,不需要停,直接就可以导出来的,导出数据就可以了,不影响使用的
cgoo_0102 2015-08-14
  • 打赏
  • 举报
回复
dbcc checktable('表的名称',REPAIR_ALLOW_DATA_LOSS) dbcc checktable('数据表的名称',REPAIR_REBUILD) 提示是 消息 8967,级别 16,状态 131,第 5 行 DBCC 中出现内部错误,无法继续处理。请与客户支持服务部门联系。 消息 8967,级别 16,状态 131,第 6 行 DBCC 中出现内部错误,无法继续处理。请与客户支持服务部门联系。 暂时没考虑把数据转移出来,先看能否恢复,因为一直在用,停不了。
LongRui888 2015-08-14
  • 打赏
  • 举报
回复
强烈建议做备份,完整备份+差异备份,这样至少大部分数据都能恢复
LongRui888 2015-08-14
  • 打赏
  • 举报
回复
如果还不行,试试把数据导出来看看。
LongRui888 2015-08-14
  • 打赏
  • 举报
回复
试试这个: dbcc checktable('表的名称',REPAIR_ALLOW_DATA_LOSS) dbcc checktable('数据表的名称',REPAIR_REBUILD)

22,297

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧