小弟现在正在编写一个虚拟主机管理系统服务器端是用C#
其中有一部分功能是控制SQL
备份数据库,最好是让远程用户备份到本机上,请高手们指点一二。
谢谢大家了

解决方案 »

  1.   

    第一步,先备份到主机上string backup_file = "备份后生成的文件名";
    string db_name = "数据库名";
    string sql = "BACKUP DATABASE [" + db_name + "] TO  DISK = N'" + backup_file + "' WITH  INIT ,  NOUNLOAD ,  NAME = N'" + db_name + " backup',  NOSKIP ,  STATS = 10,  NOFORMAT ";
    //执行该SQL语句
    ...第二步,传输文件至本地第三步,删除主机上的备份文件
      

  2.   

    备份SQL数据库的思路是:利用SQL Server提供的数据备份与恢复功能,
    写两个存储过程,然后在程序中执行这外存储过程就行了
    ,就如同执行任命一个SQL语句一样--******************************************************************************--
    -- --
    --功能:还原数据备份 --
    --设计人:孟利洪 --
    --设计时间:2004-09-04 --
    -- --
    --******************************************************************************--
    CREATE PROCEDURE pro_DataRest
    @strName varchar(200), --恢复数据库名
    @strBackFile varchar(200) --备份文件名
    AS  --定义游标
      DECLARE @spid VARCHAR(20)
      DECLARE #spid CURSOR FOR
        SELECT spid=cast(spid AS VARCHAR(20)) FROM master..sysprocesses WHERE dbid=db_id(@strName)
      OPEN #spid
      FETCH NEXT FROM #spid INTO @spid
      --循环删除所有连接
      WHILE @@fetch_status=0
      BEGIN  
        EXEC ('kill '+@spid)
        FETCH NEXT FROM #spid INTO @spid
      END  
     
      CLOSE #spid
      DEALLOCATE #spid  --还原数据库
      RESTORE DATABASE @strName FROM DISK = @strBackFile WITH FILE = 1,replace,RECOVERY
    GO
    --******************************************************************************--
    -- --
    --功能:备份数据库 --
    --设计人:孟利洪 --
    --设计时间:2004-09-04 --
    -- --
    --******************************************************************************--
    CREATE PROCEDURE pro_DataBack
    @strName varchar(200), --备份数据库名
    @strBackFile varchar(200) --备份文件名
    AS  --备份数据库
      BACKUP DATABASE @strName TO DISK = @strBackFile WITH NOINITGO