改進的ASP備份SQLServer數據庫

字號:


    選擇操作:
    
    數據庫名:">
    文件路徑:(備份或恢復的文件路徑)
    
    

    <%
    'SQL Server 數據庫的備份與恢復!
    if request("action")="backupdatabase" Then
    dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
    sqlserver = "localhost"
    sqlname = "sa"
    sqlpassword ="password"
    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.Action = 0
    bak.Initialize = 1
    'bak.Replace = True
    bak.Files=bak_file
    bak.SQLBackup srv
    if err.number>0 then
    response.write err.number&"
    "
    response.write err.description&"
"
    end if
    Response.write "備份成功!"
    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&"
    "
    response.write err.description&"
"
    end if
    rest.SQLRestore srv
    Response.write "恢復成功!"
    else
    Response.write "沒有選擇操作"
    end if
    end if
    end if
    %>