SQL Server備份腳本:
腳本週三全備份,其他時間差異備份。
declare @device varchar(30); declare @filename varchar(50); declare @datetime varchar(50); declare @weekname varchar(50); declare @weeknametmp varchar(4); declare @weekday int; set @weekname=datename(weekday,getdate()); set @datetime = convert(varchar(20),getdate(),112); set @device= 'RapooOA' + @datetime; set @filename='D:\SQLBackup\RapooOA'+@datetime+'.bak'; set @weeknametmp=substring(@weekname,3,1); if (@weeknametmp='一') set @weekday=1; else if (@weeknametmp='二') set @weekday=2; else if (@weeknametmp='三') set @weekday=3; else if (@weeknametmp='四') set @weekday=4; else if (@weeknametmp='五') set @weekday=5; else if (@weeknametmp='六') set @weekday=6; else if (@weeknametmp='日') set @weekday=0; set @datetime = convert(varchar(20),getdate()-@weekday,112); set @device= 'RapooOA' + @datetime; set @filename='D:\SQLBackup\RapooOA'+@datetime+'.bak' if (@weekname='星期三') begin execute sp_addumpdevice 'disk',@device,@filename; backup database RapooOA to @device end else begin backup database RapooOA to @device with differential end
保存爲.sql格式的文件,使用計劃任務定時執行就可以了。
如果出現下列錯誤:只要執行 exec sp_dropdevice RapooOA20160117 就可以刪除了,然後重新運行就可以。
消息 15026,級別 16,狀態 1,過程 sp_addumpdevice,第 74 行
邏輯設備 'RapooOA20160117' 已存在。
參考: