现在本机已经安装了SQL Server,有数据库Database1.bak的数据库文件如何用Dos命令还原到现在的数据库上,使得有一个Database1的数据库,如原来有同名数据库则覆盖其内容

解决方案 »

  1.   

    应该是用SQL语句而不是DOS命令吧:
    --1.用此语句得到备份文件的逻辑文件名:
    RESTORE FILELISTONLY FROM DISK = N'd:\tempdb\olddb.bak' --备份文件存放路径
    --看LogicalName,一般会有两个文件,如:
    --olddb      --主逻辑文件名称
    --olddb_log  --日志逻辑文件名称--2.用以下语句还原数据库
    RESTORE DATABASE new_db   
    FROM DISK = 'd:\tempdb\olddb.bak' 
    WITH MOVE 'olddb' TO 'd:\tempdb\newdb.mdf', 
    MOVE 'olddb_log' TO 'd:\tempdb\newdb_log.ldf'  /*--对以上代码补充说明:
    RESTORE DATABASE 还原后数据库的名称   
    FROM DISK = '备份文件的路径\备份数据库名称.bak' 
    WITH MOVE '主逻辑文件名称' TO '还原后的路径\还原后数据文件名称.mdf', 
    MOVE '日志逻辑文件名称' TO '还原后的路径\还原后日志文件名称_log.ldf'  
    */ --如果遇到页面错误乃至不能还原,可用以下误句强制还原,跳过页面错误:
    RESTORE DATABASE dbname 
    FROM DISK='backupset_file' 
    WITH CONTINUE_AFTER_ERROR--还原后用 DBCC CHECKDB 修复数据库。
    --注意:由于原始的备份集中有页面错误,还原后会有部分数据丢失。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2010/04/15/5490832.aspx
      

  2.   

    1把sql语句写到一个文件里面
    2然后dos下用isql命令调用这个文件
      

  3.   

    osql -Sserver -Usa -Ppwd
    use database
    restore filelistonly from disk='路径' with password='pwd'
    go
    restore database Db from disk='路径' move 'file_name' to 'newpath',move 'file_namelog' to 'newpathlog'