采用下面的方法: 方案1:调用DBCC CHECKDB(‘db_name’,repair_rebuild)修复方案2:若方案1失败,采用下面的方法试一试: 首先,在企业管理器中新建一数据库(如数据库名为test),建好数据库后,停止SQL Server Service Manager,并将客户数据库的MDF文件更名为test _data.mdf(即新建数据库的主文件名),然后用更名后的文件覆盖新建数据库同名文件,接着,启动企业管理器。对Master数据库将系统表设置为可更改状态 Use Master Go sp_configure 'allow updates', 1 reconfigure with override Go 将数据库设为紧急状态: update sysdatabases set status = 32768 where name = ' database ' 停止并重新启动SQL Server Service Manager,并重建Log文件: DBCC TRACEON (3604) DBCC REBUILD_LOG(' test ','test _log_ldf') 将数据库设置为单用户模式,然后进行检测: sp_dboption ' test ', 'single user', 'true' DBCC CHECKDB(' test ') Go 此数据库执行CHECKDB的过程中发现一些表的索引被破坏,于是针对具体的表进行重建索引的操作: DBCC DBREINDEX(表名) 方案3:若无法修复,则只能重备份中进行恢复.
wudan8057(十年) 用你的第2个方法试了, 执行DBCC TRACEON (3604) DBCC REBUILD_LOG(' test ','test _log_ldf') 说是设备激活错误。物理文件名 '_log_ldf' 可能有误。sp_dboption ' test ', 'single user', 'true' DBCC CHECKDB(' test ') 说是 未能读取并闩锁页 (1:137)(用闩锁类型 SH)。sysindexes 失败。
打开表还是出现 823 错误,
运行 DBCC CHECKDB 出现
服务器: 消息 8966,级别 16,状态 1,行 1
未能读取并闩锁页 (1:137)(用闩锁类型 SH)。sysindexes 失败。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。请问如何解决啊??急急急!!!!!
sp_attach_db 'newdb','path\filename'
如果还是同样错误,说明此文件损坏了.
方案1:调用DBCC CHECKDB(‘db_name’,repair_rebuild)修复方案2:若方案1失败,采用下面的方法试一试:
首先,在企业管理器中新建一数据库(如数据库名为test),建好数据库后,停止SQL Server Service Manager,并将客户数据库的MDF文件更名为test _data.mdf(即新建数据库的主文件名),然后用更名后的文件覆盖新建数据库同名文件,接着,启动企业管理器。对Master数据库将系统表设置为可更改状态
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
将数据库设为紧急状态:
update sysdatabases set status = 32768 where name = ' database '
停止并重新启动SQL Server Service Manager,并重建Log文件:
DBCC TRACEON (3604)
DBCC REBUILD_LOG(' test ','test _log_ldf')
将数据库设置为单用户模式,然后进行检测:
sp_dboption ' test ', 'single user', 'true'
DBCC CHECKDB(' test ')
Go
此数据库执行CHECKDB的过程中发现一些表的索引被破坏,于是针对具体的表进行重建索引的操作:
DBCC DBREINDEX(表名) 方案3:若无法修复,则只能重备份中进行恢复.
执行DBCC TRACEON (3604)
DBCC REBUILD_LOG(' test ','test _log_ldf') 说是设备激活错误。物理文件名 '_log_ldf' 可能有误。sp_dboption ' test ', 'single user', 'true'
DBCC CHECKDB(' test ')
说是 未能读取并闩锁页 (1:137)(用闩锁类型 SH)。sysindexes 失败。