给你一个示例,联机帮助文档里有
BACKUP DATABASE Northwind 
   TO DISK = 'c:\Northwind.bak'
RESTORE FILELISTONLY 
   FROM DISK = 'c:\Northwind.bak'
RESTORE DATABASE TestDB 
   FROM DISK = 'c:\Northwind.bak'
   WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
   MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
GO

解决方案 »

  1.   

    DISK = 'D:\MSSQL2000\Data\TestDB.dat' 
      

  2.   

    备份数据库时最好是完整备份
    如:
    BACKUP DATABASE PUBS
       TO DISK = 'c:\PUBS' WITH INIT
    恢复的语句如:
    RESTORE DATABASE PUBS
       FROM DISK = 'c:\PUBS'
      

  3.   

    warning(爱就爱了):
        不行呀。提示错误为:
    Server: Msg 3234, Level 16, State 2, Line 1
    Logical file 'TestDB' is not part of database 'TestDB'. Use RESTORE FILELISTONLY to list the logical file names.
    Server: Msg 3013, Level 16, State 1, Line 1
    RESTORE DATABASE is terminating abnormally.SQLServer2000的安装路径不一样,Restore database DBName from ....出错,在Enterprise Manager恢复时只要改数据文件和日志文件的路径就可以恢复的,但用SQL时如何获得当前SQLServer的数据文件和日志文件的路径?
      

  4.   

    可能我说得不明白。从一台SQLServer机得到数据库的备份文件,例如:TestDB.Dat。该机器上SQLServer的目录为c:\program files\MSSQL2000\Data\TestDB.mdf和c:\program files\MSSQL2000\Data\TestDB.ldf现在要把TestDB.Dat恢复到另外一台SQLServer上,该机器上SQLServer的目录为D:\MSSQL2000。在Enterprise Manager里恢复时将TestDB.dat的数据文件和日志文件的路径更改为当前机器SQLServer的路径,恢复时成功的。但这个过程用SQL来写时,该如何更改TestDB.dat的数据文件和日志文件的路径为当前机器SQLServer的路径?用下列方法不行,因为此时没有生成数据文件Northwid和Northwind_log,用Move时肯定要出错。
      RESTORE FILELISTONLY 
       FROM DISK = 'c:\Northwind.bak'
      RESTORE DATABASE TestDB 
       FROM DISK = 'c:\Northwind.bak'
       WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
       MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'