在sql server 2000中经常会遇到数据库置疑,我想问下怎么解决置疑恢复问题。不是用备份还原的那些

尽量用鼠标点,不是用sql语句,具体点。

首先数据库置疑是复杂的,原因有多种一般是因为数据文件损坏,硬盘或者有坏道,或者是因为数据字典内容损坏,日志损坏等,必须要有针对性的恢复。最简单的就是日志文件损坏的恢复,可以通过重新创建日志的方法恢复。要是其他问题,还没有备份的话就必须建一个空数据库,用sqlseever的命令和sql将数据迁入新库中(即使这样,也未必能保证不丢失数据),像你说的通过鼠标点一下的操作就将数据库恢复的方法现在还没有!!
1 数据库属性,设置中,允许对系统目录直接修改(Allow modifications to be made directly to the system catalogs) 选中
2 update sysdatabases set status=32768 where name='数据库名称'
这条语句执行之后就可以对数据库进行读取了!!!!
3 进入查询分析器 创建一个新数据库
4 在质疑数据库中 运行下面语句
select 'select * into 新数据名称..'+rtrim(name)+' from '+name from
sysobjects where xtype='u' order by name
5 将第四步运行结果复制到新数据库中执行!!!
这个方法是可以解决大部分数据库置疑问题的!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-07
曾经多次遇到过这种问题,也曾经使用过多种方法,但是都无效,只是我们备份及时,没有数据丢失,直接还原的备份好的数据库!
第2个回答  2011-10-08
USE MASTER
GO

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO

UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='local'
Go

sp_dboption 'local', 'single user', 'true'
Go

DBCC CHECKDB('local')
Go

update sysdatabases set status =28 where name='local'
Go

sp_configure 'allow updates', 0 reconfigure with override
Go

sp_dboption 'local', 'single user', 'false'
Go

dbcc rebuild_log('local','k:\local.ldf')

参考资料:www.sql120.com

相似回答