我从一台机子用以下语句备份了SQL 数据库'BACKUP DATABASE [TEST] TO DISK = ' + #39 + 'C:\KKK.BAK' + #39;
怎样C:\KKK.BAK' 恢复到另一台机子的SQL数据库?注意:数据库相同,机子不同

解决方案 »

  1.   

    restore database ip或主机名\\c:kkk.bak
      

  2.   

    RESTORE DATABASE kkk 
       FROM DISK = 'c:/kkk.bak'
      

  3.   

    简单说:
    我的KKK是从一台机的D:\sql\data\ 备份过来的,
    现在另一台你的SQL 目录是 (D:\tss\sql\data),
    当我执行
    'RESTORE DATABASE [test] FROM DISK = ' + #39 + 'C:\KKK.BAK' + #39+
    报错是:“物理地址:D:\sql\data\”错误。
      

  4.   

    [test]是数据库名????
    RESTORE DATABASE 数据库名 FROM DISK ='C:\KKK.BAK'
      

  5.   

    IORILI:
     test,是数据库名,
    如果我是在同一台机执行'RESTORE DATABASE [test] FROM DISK = ' + #39 + 'C:\KKK.BAK' + #39+
    是没问题的,现在的问题好象SQL在两台机子上的路径不同而产生错误
      

  6.   

    我的是这样的,
    你稍作修改procedure TForm1.Button15Click(Sender: TObject);
     var sBackupPath :string ;
       sBakFileName:string;
       RESTORE,s,q,d,t:string;
    begin
        q := ' RESTORE DATABASE [calling] FROM DISK = ' + #39 + 'C:\calling.BAK' + #39+'WITH  FILE = 1,  NOUNLOAD ,  STATS = 10,  RECOVERY , ';
        d:=' move N''calling_data'' to N''D:\software\Program Files\Microsoft SQL Server\MSSQL\Data\calling.mdf''';
        t:=',move N''calling_log'' to N''D:\software\Program Files\Microsoft SQL Server\MSSQL\Data\calling_log.ldf''';
        RESTORE := s+q+d+t;
        adoconnection3.Connected := false; Adoconnection3.ConnectionString :=
                                    'Provider=SQLOLEDB.1;'
                                      +'Integrated Security=SSPI;'
                                      +'Persist Security Info=False'
                                      +';Initial Catalog=master;Data Source=KELLER';
      Adoconnection3.Open ;
      Adoquery3.Close ;
      Adoquery3.SQL.Clear ;
      adoquery3.SQL.Add('ALTER DATABASE [calling] SET OFFLINE WITH ROLLBACK IMMEDIATE');
      adoquery3.ExecSQL ;  Adoquery3.Close ;
      Adoquery3.SQL.Clear ;
      adoquery3.SQL.Add(RESTORE);
      adoquery3.ExecSQL ;
       Adoconnection3.Open ;
      Adoquery3.Close ;
      Adoquery3.SQL.Clear ;
      adoquery3.SQL.Add('ALTER DATABASE [calling] SET ONLINE WITH ROLLBACK IMMEDIATE');
      adoquery3.ExecSQL ;
    end