连接时报如下错误:
无法打开'kq'。恢复操作已将该标记为SUSPECT。详细信息请参阅SQLServer错误日志。
已经标上了"置疑",请问该如何才能恢复中的数据?
------华软网友回答------
文件是不是被删除了.或是转移了目录.
文件存在,目录也对的,文件名也没动.
重置置疑状态
如果SQLServer因为磁盘驱动器不再有可用空间,而不能完成的恢复,那么Microsoft®SQLServer™2000会返回错误1105并且将sysdatabases中的status列设为置疑。按下面的步骤解决这个问题:
执行sp_resetstatus。
用ALTERDATABASE向添加一个数据文件或日志文件。
停止并重新启动SQLServer。
用新的数据文件或日志文件所提供的额外空间,SQLServer应该能完成的恢复。
释放磁盘空间并且重新运行恢复操作。
sp_resetstatus关闭的置疑标志,但是原封不动地保持的其它选项。恢复操作已将该标记为 suspect
注意只有在您的主要支持提供者指导下或有疑难解答建议的做法时,才可以使用sp_resetstatus。恢复操作已将该标记为 suspect否则,可能会损坏。
由于该过程修改了系统表,系统管理员必须在创建这个过程前,启用系统表更新。要启用更新,使用下面的过程:
USEmaster
GO
sp_configure'allowupdates',1
GO
RECONFIGUREWITHOVERRIDE
GO
过程创建后,立即禁用系统表更新:
sp_configure'allowupdates',0
GO
RECONFIGUREWITHOVERRIDE
GO
只有系统管理员才能执行sp_resetstatus。执行该过程后,立即关闭SQLServer。
语法为:
sp_resetstatusdatabase_name
下面的例子将关闭PRODUCTION的置疑标志。
sp_resetstatusPRODUCTION
下面是结果集:
Database'PRODUCTION'statusreset!
WARNING:YoumustrebootSQLServerpriortoaccessingthisdatabase!
sp_resetstatus存储过程代码
下面是sp_resetstatus存储过程的代码:
IFEXISTS(SELECT*fromsysobjectswherename='sp_resetstatus')
DROPPROCEDUREsp_resetstatus
GO
CREATEPROCsp_resetstatus@dbnamevarchar(30)AS
DECLARE@msgvarchar(80)
IF@@trancount>0
BEGIN
PRINT'Can''trunsp_resetstatusfromwithinatransaction.'
RETURN(1)
END
IFsuser_id()!=1
BEGIN
SELECT@msg='YoumustbetheSystemAdministrator(SA)'
SELECT@msg=@msg+'toexecutethisprocedure.'
RETURN(1)
END
IF(SELECTCOUNT(*)FROMmaster..sysdatabases
WHEREname=@dbname)!=1
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-48493-1.html
习大大访英
从现在抓起一百年以后我看还是有希望的
你还在为美爹洗地
请你给我画一只绵烊吧
小王子