用C#备份与恢复数据库

SqlConnection conn = new SqlConnection(StrConn) //StrConn 为数据库连接字符串

conn.Open();

//备份

string strSQL =@"use +DataBase+@" //DataBase为数据库名

      declare @sql nvarchar(2000),

  declare @aa nvarchar(20),

       declare @filename varchar(200),

       declare @par nvarchar(1000)

      set @aa = '"+DataBase+@'"

      set @filename ='"+StrBackupFile+@"'    //StrBackupFile为备份文件名

      select @par ='@filename varchar(1000)'

      select @sql ='BACKUP DATEBASE'  +@aa+ 'to disk=@filename with format'
      execute sp_executesql @sql,@par,@filename ";
//恢复
string StrSQL =@"declare @backuppath varchar(200)
              set @backuppath = '"+strBackupFile+@"' //strBackupFile为备份好的数据库文件
         declare @installpath(200)
        execute master.dbo.ex_regread 'HKEY_LOCAL_MACHINE','SOFTWARE/Microsoft/NSSQLSERVER/SETUP','SQLPATH',@installpath output
        set @installpath =@installpath+'/data/'
        declare @minstallpath varchar(100)
         declare @linstallpath varchar(100)
        set @minstallpath =@installpath+"+strDbName+"+@".mdf"//strDbName为数据库名
        set @linstallpath =@installpath+"+strDbName+"+@".ldf"//strDbName为数据库名
         restore database "+@strDbName+@" from disk =@backuppath
        with move "+strDbName+@" to @minstallpath
         move "+strDbName+@"+@"_log" to @linstallpath
        replace";

SqlCommand cmd = new SqlCommand();
       cmd.Connection = conn;
       cmd.CommandText = strSQL;
       cmd.CommandTimeout =300;
           cmd.ExecuteNoQuery();
           conn.close();


/**********/

http://blog.youkuaiyun.com/zhr_jerry/archive/2007/08/03/1723731.aspx


/**********/
                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值