非常好用的asp备份,还原SQL数据库的代码

时间:2021-08-25 00:30:11
  1. <form method="post" name="myform" action="?action=backupdatabase">  
  2.   选择操作:  
  3.   <input type="radio" name="act" id="act_backup"value="backup">  
  4.   <label for=act_backup>备份</label>  
  5.   <input type="radio" name="act" id="act_restore" value="restore">  
  6.   <label for=act_restore>恢复</label>  
  7.   <br>  
  8.   数据库名:  
  9.   <input type="text" name="databasename" value="<%=request("databasename")%>">  
  10.   <br>  
  11.   文件路径:  
  12.   <input type="text" name="bak_file" value="c:\$1.bak">  
  13.   (备份或恢复的文件路径)<br>  
  14.   <input type="submit" value="确定" id=submit1 name=submit1>  
  15. </form>  
  16. <%   
  17. 'sql server 数据库的备份与恢复!   
  18. if request("action")="backupdatabase" then   
  19.  dim sqlserver,sqlname,sqlpassword,sqllogintimeout,databasename,bak_file,act   
  20.  '**************************************************************************  
  21.  sqlserver = "127.0.0.1"  
  22.  sqlname = "sa "  
  23.  sqlpassword ="111"  
  24.  sqllogintimeout = 15  
  25.  databasename = trim(request("databasename"))   
  26.  bak_file = trim(request("bak_file"))   
  27.  bak_file = replace(bak_file,"$1",databasename)  
  28.  act = lcase(request("act"))  
  29.  '**************************************************************************  
  30.  if databasename = "" then  
  31.   response.write "input database name"  
  32.  else  
  33.   if act = "backup" then  
  34.    set srv=server.createobject("sqldmo.sqlserver")  
  35.    srv.logintimeout = sqllogintimeout  
  36.    srv.connect sqlserver,sqlname, sqlpassword  
  37.    set bak = server.createobject("sqldmo.backup")  
  38.    bak.database=databasename  
  39.    bak.devices=files   
  40.    bak.action   = 0  
  41.    bak.initialize   = 1  
  42.    'bak.replace        = true  
  43.    bak.files=bak_file   
  44.    bak.sqlbackup srv  
  45.     if err.number>0 then   
  46.      response.write err.number&"<font color=red><br>"   
  47.      response.write err.description&"</font>"   
  48.     end if  
  49.   response.write "<font color=green>备份成功!</font>"   
  50.   end if  
  51.  
  52.   if act="restore" then  
  53.   '恢复时要在没有使用数据库时进行!   
  54.    set srv=server.createobject("sqldmo.sqlserver")  
  55.    srv.logintimeout = sqllogintimeout  
  56.    srv.connect sqlserver,sqlname, sqlpassword  
  57.    set rest=server.createobject("sqldmo.restore")  
  58.    rest.action=0 ' full db restore   
  59.    rest.database=databasename   
  60.    rest.devices=files   
  61.    rest.files=bak_file   
  62.    rest.replacedatabase=true 'force restore over existing database   
  63.     if err.number>0 then  
  64.      response.write err.number&"<font color=red><br>"  
  65.      response.write err.description&"</font>"  
  66.     end if  
  67.    rest.sqlrestore srv  
  68.    response.write "<font color=green>恢复成功!</font>"  
  69.   else   
  70.    response.write "<font color=red>没有选择操作</font>"  
  71.   end if   
  72.  end if   
  73. end if  
  74. %>