急。。。。。SQL Server2000数据库有坏表,怎么处理?

Focus1111 2004-12-18 09:49:50
我的SQL Server2000在打开的时候,特别的慢,要一两分钟的样子才能看到表。
我一个个表找过来, 发现有几个表坏了。
在打开这个表的时候,弹出 “[Microsoft][ODBC SQL Server Driver][SQL Server]由于文件ID3(位于数据库Jus中)无效,所以未能打开FCB” 的错误提示。

点“帮助” 出现“ODBC 错误:<0s>。生成了 ODBC 错误。可能删除了与某个外键值相关的记录,或者违反了 CHECK 约束。”的提示。

在这个数据库中,有三个表出现了这样的问题。 这三个表删除也行, 关系不大。
但我在删除的过程中,弹出“由于文件ID3在数据库jus中无效,无法打开FCB”的提示,删除也不成功。
我把相关联的视图,索引都已经删除后,再删除还是不行,还是上面的错误。

能改名,但不能删除。备份还原的话,坏表仍旧存在的,所以还是会影响速度的。而且连ODBC时也要连两三次才能成功。

现在事情比较急。。。。希望大虾们能给我一个处理的方法。

...全文
200 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Focus1111 2004-12-22
  • 打赏
  • 举报
回复
问题二:
在试验时,发现这个问题:
use pubs
dbcc checktable ('jobs',repair_rebuild)
执行这个语句时,出现如下错误信息:
服务器: 消息 7919,级别 16,状态 3,行 2
未处理修复语句。数据库需要处于单用户模式下。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

还有另一个数据库youku在执行了DBCC CHECKDB (youku) 之后,在企业管理器里,打开数据库时,
原本的数据库youku的名字变成了youku(单个用户)
这是回事?? 怎么办它改回多个用户的模式呢?

Focus1111 2004-12-22
  • 打赏
  • 举报
回复
谢谢楼上的各位。
现在坏的数据库不在这里,所以也无法检测

但学到了用DBCC CHECKTABLE 和DBCC CHECKDB 两种用法。

具体用法:
DBCC CHECKDB (pubs) //pubs为要检测的数据库

反馈信息:
'jobs' 的 DBCC 结果。
对象 'jobs' 有 14 行,这些行位于 1 页中。 //Job为数据库pubs里面的表,各个表都有这个信息。
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'pubs' 中)。

DBCC CHECKTABLE(Jobs)
'jobs' 的 DBCC 结果。
对象 'jobs' 有 14 行,这些行位于 1 页中。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

Focus1111 2004-12-22
  • 打赏
  • 举报
回复
坏表'user'用DBCC CHECKTABLE('User',REPAIR_REBUILD)后的执行情况如下:

'user' 的 DBCC 结果。
对象 'user'有 174 行,这些行位于 11 页中。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

但问题还是没解决,仍旧打开数据库的时候很慢的说
vinsonshen 2004-12-21
  • 打赏
  • 举报
回复
exec sp_dboption 'shen','single user',true
DBCC CHECKTABLE ('有问题的表名',REPAIR_REBUILD)
exec sp_dboption 'single user',false
NinGoo 2004-12-21
  • 打赏
  • 举报
回复
use db_name
dbcc checkdb

看下提示用什么选项来修复数据库

guanshiyu123 2004-12-21
  • 打赏
  • 举报
回复
dbcc checkdb (库名)
gph2005 2004-12-21
  • 打赏
  • 举报
回复
用DBCC CHECKTABLE 检查一下表
chengulv 2004-12-21
  • 打赏
  • 举报
回复
真没碰到过。 观注!!!!!!!!!!!!!!
Focus1111 2004-12-21
  • 打赏
  • 举报
回复
在查询分析器里面输入这行代码没用。 'dbname'是指数据库名称吗?

如果我要检修 数据库youku的表user

该怎么写呢?

dbcc checkdb 'youku' 和dbcc checkdb 'user' (dbcc checkdb youku 和dbcc checkdb user )都不行的说
分别提示“'youku' 附近有语法错误。” 和“'user' 附近有语法错误。”
chinaandys 2004-12-19
  • 打赏
  • 举报
回复
dbcc checkdb 'dbname'检修一下
Focus1111 2004-12-19
  • 打赏
  • 举报
回复
难道没人碰到过这样的问题吗 ?

斑斑快来哦,帮帮忙哦

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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