restore database test from disk='C:\ba'
这样的还原总是提示 备份集中的数据库备份与现有的 'test' 数据库不同。  这就好比不用SQL语句还原时 需要把覆盖现又数据库勾上一下 ~~  但是不知道怎么用 SQL语句实现这个效果  请高手帮忙 谢谢

解决方案 »

  1.   

    restore database test from disk='C:\ba' with replace
      

  2.   


    restore database test from disk='C:\ba' with replace  意思是说 test这个数据库是要在不存在的情况么
      

  3.   

    消息 1834,级别 16,状态 1,第 1 行
    无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SSN.mdf'。数据库 'SSN' 正在使用该文件。
    消息 3156,级别 16,状态 4,第 1 行
    文件 'SSN' 无法还原为 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SSN.mdf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
    消息 1834,级别 16,状态 1,第 1 行
    无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SSN_log.ldf'。数据库 'SSN' 正在使用该文件。
    消息 3156,级别 16,状态 4,第 1 行
    文件 'SSN_log' 无法还原为 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SSN_log.ldf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
    消息 3119,级别 16,状态 1,第 1 行
    在计划 RESTORE 语句时发现了问题。以前的消息提供了详细信息。
    消息 3013,级别 16,状态 1,第 1 行
    RESTORE DATABASE 正在异常终止。
    1楼 不行啊~~
      

  4.   

    那是因为你的数据库恢复后的mdf或者ndf ldf路径和现在冲突了(一样),需要改个名字
    解决办法有两个
    1 删除原来的数据库(如果原来的数据库不再有用)
    2 用with move 更改文件位置
    比如restore database db from disk='c:\ba' with replace,
    move 'ssn' to disk='c:\ssn1.mdf',
    move 'ssn_log' to disk='c:\ssn1_log.ldf'
      

  5.   

    先使用 ALTER DATABASE dbname SET OFFLINE WITH ROLLBACK IMMEDIATE 语句让数据库离线,再使用 RESTORE DATABASE 语句还原。
      

  6.   

    是这样的  现在有数据库A  我备份好了  然后CREATE DATABASE mydb  然后还原 restore database mydb from disk='D:\1.bak'  with replace  结果总报错  请问你们说的删除  是删除数据库A 还是mydb呢? 然后再执行
    restore database mydb from disk='D:\1.bak'  with replace??谢谢帮助~~