假如数据库名为AA,目标位置C:\TEST

解决方案 »

  1.   

    两种方法一种用Sql server自己带的存储过程,另一种用clientDataset把数据库的数据放到*.cds文件中去
      

  2.   

    引用大虾阿毛的回答:
    ------------------------------------------------------------------
    最简单的SQL语句:备份与还原SQL Server自带的数据库在服务器上备份:
    use Northwind
    Backup database Northwind to disk='d:\Northwind_bak.dat' with initRESTORE DATABASE NorthNwind FROM DISK = 'd:\Northwind_bak.dat'------------------------------------------------------------------
    备份数据库这一操作在客户机上实现 
    客户机:machine
    共享目录:share (要完全共享,可写权限)backup:
    bakcup database dbname to disk='\\machine\share\data.bak' with init
    \\machine\share目录要有写权限。restore:
    restore database dbname from disk='\\machine\share\data.bak' 
    //
    备注:restore 语句有很多的选项,可以查看企业管理器的在线帮助。如下
      with replace, move 'dbname_dat' to 'c:\mssql7\data\dbname.mdf', 
       move 'dbname_log' to 'c:\mssql7\data\dbname.log'
    其中'c:\mssql7\data\'是服务器的目录,这点要注意------------------------------------------------------------------------------备份与还原数据库的相关内容:
    SQL Server 7.0数据库备份有四种:完全数据库备份、增量数据库备份、事务日志备份、数据库文件或文件组备份。在数据库崩溃时,应该首先尝试备份事务日志(这一点很重要),然后恢复最后的数据库备份、该次数据库备份后的所有增量备份,最后恢复事务日志备份,这样可以将数据库恢复到崩溃前的状态。备份是定期的,而不是实时的,所以利用备份并不能完全恢复数据库,它只能将数据库恢复到制作备份的那一刻 ...... 数据库日志是实时的,他忠实的记录下所有对数据库的更新操作。因此,当磁盘出现故障造成数据库损坏时,就可以首先利用备份恢复数据库(大部分数据),然后运行数据库日志,即将备份后所做的操作重新在做一遍,从而将数据库完全恢复。
    --备份完整的数据库---------------------------------------------------------------
    //创建一个备份设备:
    -- 1. Create the backup device for the full MyNwind backup.///
    USE master
    EXEC sp_addumpdevice 'disk', 'MyNwind_2', 'c:\mssql7\backup\MyNwind_2.dat'-- 2. Back up the full MyNwind database.BACKUP DATABASE MyNwind TO MyNwind_2--备份数据库的日志--------------------------------------------------------------- 
    --1. Create the log backup device.USE master
    EXEC sp_addumpdevice 'disk', 'MyNwindLog1', 'c:\mssql7\backup\MyNwindLog1.dat'--2.  Update activity has occurred before this point. Back up the log of the MyNwind database.BACKUP LOG MyNwind TO MyNwindLog1-------
    try
    AdoQuery1.Close;
    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.Add('backup database pubs');
    AdoQuery1.SQL.Add('to disk='+''''+edtPath.Text+'''');
    AdoQuery1.ExecSQL;
    except
      ShowMessage('备份数据库失败!');
      exit;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
        begin
          if OpenDialog1.Execute then
          begin
            try
              adoconnection1.Connected:=False;
              adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=FRIEND-YOFZKSCO;'+
              'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=FRIEND-YOFZKSCO;Use Encryption for Data=False;Tag with column collation when possible=False';
              adoconnection1.Connected:=True;
              with adoQuery1 do
              begin
                Close;
                SQL.Clear;
                SQL.Add('Backup DataBase sfa to disk ='''+opendialog1.FileName+'''');
                ExecSQL;
              end;
            except
              ShowMessage('±?·Y꧰ü');
            Exit;
            end;
          end;
          Application.MessageBox('1§?2?ú£?êy?Y±?·Y3é1|','ìáê?',MB_OK + MB_ICONINFORMATION);
        end;    procedure TForm1.Button2Click(Sender: TObject);
        begin
          if OpenDialog1.Execute then
          begin
            try
              adoconnection1.Connected:=false;
              adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=FRIEND-YOFZKSCO;'+
              'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=FRIEND-YOFZKSCO;Use Encryption for Data=False;Tag with column collation when possible=False';
              adoconnection1.Connected:=true;
              with adoQuery1 do
              begin
                Close;
                SQL.Clear;
                SQL.Add('Restore DataBase sfa from disk ='''+opendialog1.FileName+'''');
                ExecSQL;
             end;
           except
             ShowMessage('???′꧰ü');
             Exit;
           end;
         end;
         Application.MessageBox('1§?2?ú£?êy?Y???′3é1|','ìáê?',MB_OK + MB_ICONINFORMATION);
        end;