复制MDF文件时SQL服务要先停止,否则不能复制.

解决方案 »

  1.   


    --正在写入数据的时候突然断电或磁盘出现故障都有可能,用如下方法尝试
    1. 将已破坏的老数据库更名如Test_Data.Mdf ==>Test_Data.Md_ ,并在原来位置新建一同名数据库 如Test_Data.Mdf . 
    2. 停止SQL, 将新数据库更名(Test_Data.Mdf ==> Test_Data.Md2), 
       待修复老数据库更名为原先名称Test_Data.Md_ ==> Test_Data.Mdf
    3. 启动SQL , 并进入查询分析器中, 执行如下命令:
    USE MASTER
    sp_configure  'allow', 1
    reconfigure with override
    update sysdatabases set status = 32768  where name = 'Test'
    4. 把LDF文件改名,再执行
    DBCC REBUILD_LOG ('Test',  'E:\posdb\Test_Log.LDF' )
    5. 恢复数据库紧急模式
    update sysdatabases set status = 0 where name = 'Test'
    6. 执行
    restore database Test WITH RECOVERY
    sp_configure 'allow', 0
    reconfigure with override
    7. 检查数据库看看有没有错误, 应该可以看到数据了
    DBCC CHECKDB ('Test')
    如以上还是不行,试把数据库设为紧急模式,再把数据导出到一个新的数据库(如有坏区)
      

  2.   

    sp_configure  'allow', 1
      这个话 好像 有问题的哦 ?