sqlserver 自动备份所有数据库的SQL

时间:2021-09-26 03:09:15

代码如下:


use master 
declare @DbName varchar(60) 
declare @BackSql varchar(1000) 
declare myCursor cursor for 
SELECT [name] FROM SYSDATABASES 
where [name] not in ('master','model','msdb','tempdb') 
order by [name] 
open myCursor 
fetch next from myCursor into @DbName 
while(@@FETCH_STATUS = 0) 
begin 
if datename(weekday, getdate())='星期三' --每周三覆盖上周三的 
begin 
select @BackSql='Backup DATABASE ['+@DbName+'] to disk=''E:\DbBackUp\'+@DbName+'星期三.bak'' with format' 
end 
else--每天覆盖上一天的 
begin 
select @BackSql='Backup DATABASE ['+@DbName+'] to disk=''E:\DbBackUp\'+@DbName+'AutoBack.bak'' with format' 
end 
exec(@BackSql) 
fetch next from myCursor into @DbName 
end 
close myCursor 
DEALLOCATE myCursor