sql server 2000服务管理器 服务:拒绝访问。发生错误5-(拒绝
访问。),此时正在mssqlserver服务上执行该服务操作。企业管理器:无法附加数据库。错误602:未能在sysindexes中找到数据库ID7中的对象ID1的索引ID...
访问。),此时正在mssqlserver服务上执行该服务操作。
企业管理器:无法附加数据库。错误602:未能在sysindexes中找到数据库ID 7中的对象ID1的索引ID 1对应的行。请对sysindexes运行DBCC CHECKTABLE.
怎么解决?
如何 “在 sysindexes 上执行 DBCC CHECKTABLE;同样执行 DBCC CHECKDB ”啊?
新手,不懂啊,讲下过程,拜托了,我只是想把数据库导进去...... 展开
企业管理器:无法附加数据库。错误602:未能在sysindexes中找到数据库ID 7中的对象ID1的索引ID 1对应的行。请对sysindexes运行DBCC CHECKTABLE.
怎么解决?
如何 “在 sysindexes 上执行 DBCC CHECKTABLE;同样执行 DBCC CHECKDB ”啊?
新手,不懂啊,讲下过程,拜托了,我只是想把数据库导进去...... 展开
2个回答
展开全部
解释
当 Microsoft® SQL Server™ 无法在 sysindexes 表中找到需要的表或索引所对应的行时(例如,当执行引用已除去的表的存储过程时),发生该错误。
对策
如果该错误因为存储过程引用某个已除去的表而发生,则除去并重新创建该存储过程。该错误还可能和其它错误信息一起发生,而这些消息更好地指出问题的根本原因。在 sysindexes 上执行 DBCC CHECKTABLE;同样执行 DBCC CHECKDB。
1. DBCC CHECKDB
重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。
use master
declare @databasename varchar(255)
set @databasename='需要修复的数据库实体的名称'
exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态
然后执行 DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。注意:修复后可能会造成部分数据的丢失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称
declare @dbname varchar(255)
set @dbname='需要修复的数据库实体的名称'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)
------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称
exec sp_dboption @dbname,'single user','false'
当 Microsoft® SQL Server™ 无法在 sysindexes 表中找到需要的表或索引所对应的行时(例如,当执行引用已除去的表的存储过程时),发生该错误。
对策
如果该错误因为存储过程引用某个已除去的表而发生,则除去并重新创建该存储过程。该错误还可能和其它错误信息一起发生,而这些消息更好地指出问题的根本原因。在 sysindexes 上执行 DBCC CHECKTABLE;同样执行 DBCC CHECKDB。
1. DBCC CHECKDB
重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。
use master
declare @databasename varchar(255)
set @databasename='需要修复的数据库实体的名称'
exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态
然后执行 DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。注意:修复后可能会造成部分数据的丢失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称
declare @dbname varchar(255)
set @dbname='需要修复的数据库实体的名称'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)
------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称
exec sp_dboption @dbname,'single user','false'
参考资料: http://space.itpub.net/35489/viewspace-600445
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |