MS SQL Express 自動備份

BUBU 因為公司有使用 SQL Express 版本,因該本版是屬於陽春版,所以無法自動備份資料,所以只能用語法方式來執行備份

T-SQL 語法


GO 
DECLARE 
@backupTime VARCHAR(20)
DECLARE 
@fileName VARCHAR(1000) 
SELECT
@backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ':', '')) 
SELECT
@fileName='D:\SQLBackup\DB_'[email protected]+'.bak'
backup database HPDM to [email protected]
GO

說明:

@fileName='D:\SQLBackup\DB_'[email protected]+'.bak(用來設定備份檔案存放位置請自行設定)\DB(備份檔案的前綴字)_'[email protected]+'.bak'

backup database DBName(資料庫名稱) to [email protected] 資料庫名稱請自行修改為你所要備份的資料庫,不然系統出現錯誤問題本人概不負責

 

.bat 設定


forfiles /p "D:\SQLBackup" /m DB_*.bak /d -14 /c "cmd /c del @path"
sleep 60s
sqlcmd -S localhost\SQLEXPRESS -E -i D:\SQLBackup\pdmbak.sql

說明:

先刪除舊的備份檔之後,再執行備份指令

自動刪除舊的備份檔

forfiles /p "D:\SQLBackup" /m DB_*.bak /d -14 /c "cmd /c del @path"
這條命令的意思就是,搜尋「D:/SQLBackup」目錄下的任意字尾名為「bak」的檔案,檢視其日期屬性是否為14天之前的(-14表示之前, 14表示之後),然後執行刪除命令

執行「 SQL 」參數 sqlcmd -S 主機名稱\SQLEXPRESS -E -i D:\XXX.sql

 

參考相關網頁: