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
演变成下面的三条SQL语句对不对?
 sql="BACKUP DATABASE Northwind    TO DISK = 'c:\Northwind.bak'"
 conn.Execute (sql) 
 sql = " RESTORE FILELISTONLY FROM DISK= 'c:\Northwind.bak'"
 conn.Execute (sql)
 sql = "RESTORE DATABASE TestDB  FROM DISK= 'c:\Northwind.bak' With Move 'country_nonglin' TO 'c:\test\testdb.mdf',   Move 'country_nonglin_log' TO 'c:\test\testdb.ldf'"
  conn.Execute (sql)

解决方案 »

  1.   

    运行时最后的这一行报错.
    sql = "RESTORE DATABASE TestDB  FROM DISK= 'c:\Northwind.bak' With Move 'country_nonglin' TO 'c:\test\testdb.mdf',   Move 'country_nonglin_log' TO 'c:\test\testdb.ldf'"
      

  2.   

    sql = "RESTORE DATABASE TestDB  FROM DISK= 'c:\Northwind.bak' With Move 'country_nonglin_data_mdf' TO 'c:\test\testdb.mdf',   Move 'country_nonglin_log_LDF' TO 'c:\test\testdb.ldf'"
    我改成上面也不行
      

  3.   

    它的错误提示如下:
    run-time error'-2147217900(80040e14)'
    [Microsoft][odbc sql server driver][sql server]逻辑文件
    'country_nonglin_data_mdf' 不是数据库"testdb的一部分请使用
    RESTORE FILELISTONLY 来列出逻辑文件名
      

  4.   

    这想了下下可能这可备份数据库时候的选择有关系,所以我把原来的系统默认的完全备份
    改为选择"文件和文件组" 并都选择了"PRIMARY" 和"country_nonglin_data"
    可是还是不行, 我真的不懂是什么原因了
      

  5.   

    噢,对了,忘记说了,备份的时候无所谓,但是还原的时候就需要关闭sql server数据库才可以。