网站首页 | 站长论坛 | 免费空间申请 | 站长下载 | 站长博客 | 商业主机 | 免费空间推荐站点 | 免费空间排行榜 | 我们知道
发新话题
打印

备份与恢复SQL Server

备份与恢复SQL Server

一个用asp备份与恢复SQL Server数据库的例子代码
<HTML>
<HEAD>
<TITLE>数据库操作</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>

<BODY>
<form method="post" name=myform>
<%if action="restore" then%><INPUT TYPE="hidden" name="action" value="restore">准备恢复数据库。。。
<%elseif action="backup" then%><INPUT TYPE="hidden" name="action" value="backup">准备备份数据库。。。<%else%>
选择操作:
<INPUT TYPE="radio" name="action" id="act_backup"  value="backup"><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" value="50forum">
<br>文件路径:<INPUT TYPE="text" name="bak_file" value="50forum.bak">(备份或恢复的文件路径)<br>
<input type="submit" value="确定">
</form>
<%
'SQL Server 数据库的备份与恢复!
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 = Server.MapPath("backup/"&bak_file)
act = lcase(request("action"))

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.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
%>
</BODY>
</HTML>

[ 本帖最后由 mmer 于 2006-2-1 21:44 编辑 ]
权力打造广东省第一个中学生联盟论坛 晴天论坛:http://bbs.pcst.cn/

TOP

发新话题