asp.net备份或恢复mssql

来源:互联网 发布:为什么要用json 编辑:程序博客网 时间:2024/05/10 05:21
<table width=100% border=0 cellspacing=0 cellpadding=0 align=center>
<form method="post" name=myform>
<tr>
<td>
<%if action="restore" then%><INPUT TYPE="hidden" name="action" value="restore">准备恢复数据库。。。
<%elseif action="backup" then%><INPUT TYPE="hidden" name="action" value="backup">准备备份数据库。。。<%else%>
选择操作:
<INPUT name="action" TYPE="radio" id="act_backup"  value="backup" checked="checked">
<label for=act_backup>备份</label> 
<INPUT TYPE="radio" name="action" id="act_restore" value="restore"><label for=act_restore>恢复</label><%end if%>
<br>数据库名:<INPUT TYPE="text" name="databasename">
<br>文件路径:<INPUT TYPE="text" name="bak_file" value="/back/">
(备份或恢复的文件路径;如果不修改路径请勿修改)<br>
<input type="submit" value="确定">
</form>
<%
'SQL Server 数据库的备份与恢复!
dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
sqlserver = ""&dbip&"" 'sql服务器
sqlname = ""&dbuid&""  '用户名
sqlpassword = ""&dbpwd&""  '密码
sqlLoginTimeout = 20 '登陆超时
databasename = trim(request("databasename"))
bak_file = trim(request("bak_file"))
bak_file = Server.MapPath("/back/bak_file")
act = lcase(request("action"))

if databasename = "" then
response.write "请输入要备份的数据库名"
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.Action    = 0
  bak.Initialize  = 1
  'bak.ReplaceDatabase  = True
  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>"
  srv.disconnect
  Set srv = nothing
  Set bak = nothing
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>"
  srv.disconnect
  Set srv = nothing
  Set rest = nothing
else
  Response.write "<font color=red>没有选择操作</font>"
end if
end if
%>
</td>
</tr>
</table>