利用 ADO 元件在 ASP 頁面中執行 BACKUP DATABASE 指令,即可將資料庫備份至伺服器本地路徑,並透過 ADODB.Stream 提供二進位下載。以下為精簡可用的核心程式碼:
<%
Response.Charset = "utf-8"
Session.Codepage = 65001
Response.Buffer = true
Response.Clear
' 修改連線字串:User ID、Password、Data Source
constr = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=your_pwd;Data Source=127.0.0.1"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open constr
' 備份檔名含時間戳記,避免覆蓋
bkfname = Server.MapPath(Format_Time(Now(),5) & "database.bak")
sqlstr = "BACKUP DATABASE your_db TO DISK='" & bkfname & "' WITH INIT"
conn.Execute sqlstr
conn.Close
Response.Write "Database backup success! <a href='" & bkfname & "'>Click to download</a>"
' 若需直接輸出二進位下載(瀏覽器會另存為 .asp,手動改副檔名即可)
' Set fn = Server.CreateObject("ADODB.Stream")
' fn.Mode = 3 : fn.Type = 1 : fn.Open
' fn.LoadFromFile bkfname
' Response.ContentType = "application/octet-stream"
' Response.BinaryWrite fn.Read
' fn.Close
%>
WITH INIT:覆寫同名備份檔,避免追加導致檔案過大。Format_Time 需自行實作或替換為 Year(Now)&Month(Now)&Day(Now)&Hour(Now)&Minute(Now)&Second(Now)。