应该是用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
1把sql语句写到一个文件里面 2然后dos下用isql命令调用这个文件
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'
--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然后dos下用isql命令调用这个文件
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'