用C#备份与恢复数据库

来源:互联网 发布:python queue.empty 编辑:程序博客网 时间:2024/05/20 04:11
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.csdn.net/zhr_jerry/archive/2007/08/03/1723731.aspx


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

原创粉丝点击