之前在基础版发贴子,没有找到答案,希望各位各手予以帮忙简单地说,数据库出了问题,现在目录中已经没有此数据库了,只有mdf和ldf文件。
附加数据库报错如下:消息 1813,级别 16,状态 2,第 1 行
无法打开新数据库 'test'。CREATE DATABASE 中止。
消息 824,级别 24,状态 2,第 1 行
SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:26977,但实际为 0:0)。在文件 'D:\test\test.mdf' 中、偏移量为 0x0000000d2c2000 的位置对数据库 ID 5 中的页 (1:26977) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。
消息 3313,级别 21,状态 2,第 1 行
在重做数据库 'test' 的日志中记录的操作时,日志记录 ID (55170:151:132) 出错。通常,特定故障以前会在 Windows 事件日志服务中记录为错误。请利用完整备份还原数据库,或者修复该数据库。求解决方法,注:是MSSQL2005

解决方案 »

  1.   

    新建一个同名的数据库,然后停止SQL Server服务!将你所说的“只有mdf和ldf文件”这两个文件覆盖掉刚刚创建数据库生成的文件,然后重启SQL Server服务!这样操作后看看你的数据库还能否使用...
      

  2.   

    参考,内容不太相同,但可以按这个步骤操作一下http://topic.csdn.net/u/20100929/13/105c0b54-9785-42f5-a58c-f6d939d0e3ae.html?36406
      

  3.   

    另外可以抛弃日志文件(最好备份出来)!试试下面的操作...其实就是 3 楼链接的那个..
    SQL2005 如何在没有日志文件的情况下如何恢复MDF数据库文件第一步:先建立一个同名数据库,停止SQL SERVER2005,将没有日志的的.mdf数据库文件覆盖刚新建的.mdf数据库文件,重新启动数据库。第三步:在查询分析器中运行如下代码:
    alter database 数据库名 set emergency --将数据库设置为紧急状态
    use master  
    declare @databasename varchar(255)  
    set @databasename=‘数据库名’       '注释:你的.mdf文件文件名,这里不用加 .mdf'
    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’--将目标数据库置为多用户状态