Asp备份与恢复SQLServer数据库

发表于:2007-07-02来源:作者:点击数: 标签:
<HTML> <HEAD> <TITLE> SQL Server 数据库 的备份与恢复</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </HEAD> <BODY> <form method="post" name=myform> 选择操作:<INPUT TYPE="radio" NAME="act" id=

<HTML>
  <HEAD>
  <TITLE>SQL Server 数据库的备份与恢复</TITLE>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  </HEAD>
<BODY>
  <form method="post" name=myform>
  选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup" value="backup"><label for=act_backup>备份</label> 
  <INPUT TYPE="radio" NAME="act" id="act_restore" value="restore"><label for=act_restore>恢复</label>
  <br>数据库名:<INPUT TYPE="text" NAME="databasename" value="<%=request("databasename")%>">
  <br>文件路径:<INPUT TYPE="text" NAME="bak_file" value="c:\\$1.bak">(备份或恢复的文件路径)<br>
  <input type="submit" value="确定">
  </form>
  <%
  \@#SQL Server 数据库的备份与恢复!
  \@#海娃@2004-4-2
  \@#http://www.51windows.Net
  dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
  sqlserver = "localhost" \@#sql服务器
  sqlname = "sa" \@#用户名
  sqlpassword = "sa" \@#密码
  sqlLoginTimeout = 15 \@#登陆超时
  databasename = trim(request("databasename"))
  bak_file = trim(request("bak_file"))
  bak_file = replace(bak_file,"$1",databasename)
  act = lcase(request("act"))
  if databasename = "" then
   response.write "input database name"
  else
   if act = "backup" then
   Set srv=Server.CreateObject("SQLDMO.SQLServer")
   srv.LoginTimeout = sqlLoginTimeout
   srv.Connect sqlserver,sqlname, sqlpassword
   Set bak = Server.CreateObject("SQLDMO.Backup")
   bak.Database=databasename
   bak.Devices=Files
   bak.Files=bak_file
   bak.SQLBackup srv
   if err.number>0 then
   response.write err.number&"<font color=red><br>"
   response.write err.description&"</font>"
   end if
   Response.write "<font color=green>备份成功!</font>"
   elseif act = "restore" then
   \@#恢复时要在没有使用数据库时进行!
   Set srv=Server.CreateObject("SQLDMO.SQLServer")
   srv.LoginTimeout = sqlLoginTimeout
   srv.Connect sqlserver,sqlname, sqlpassword
   Set rest=Server.CreateObject("SQLDMO.Restore")
   rest.Action=0 \@# full db restore
   rest.Database=databasename
   rest.Devices=Files
   rest.Files=bak_file
   rest.ReplaceDatabase=True \@#Force restore over existing database
   if err.number>0 then
   response.write err.number&"<font color=red><br>"
   response.write err.description&"</font>"
   end if
   rest.SQLRestore srv
   Response.write "<font color=green>恢复成功!</font>"
   else
   Response.write "<font color=red>没有选择操作</font>"
   end if
  end if
  %>
  </BODY>
  </HTML>  

原文转自:http://www.ltesting.net