日期:2014-05-18  浏览次数:20753 次

请问SQL2005自动备份怎么改备份文件名?
在维护计划里面添加subplan之后,增加“备份数据库”任务,只能指定备份文件存放的文件夹,怎么更改备份文件名?
不管全备还是差异出来的文件名都是
TestDB_backup_200708211900.bak   这样的,怎么更改呢?谢谢!

------解决方案--------------------
这里的w:\为路径
这是偶几天写的,针对几十个数据库自动备份、删除4天前的备份(由于周六日休息,所以用del1,2,3,4删除以4天前5天前6前的备份)
用以下SQL调度
declare @s nvarchar(4000),@s2 nvarchar(4000),@del nvarchar(4000),@del2 nvarchar(4000),
@del3 nvarchar(4000),@del4 nvarchar(4000),@del5 nvarchar(4000),@del6 nvarchar(4000)
select @s= ' ',@s2= ' ',@del= ' ',@del2= ' ',@del3= ' ',@del4= ' ',@del5= ' ',@del6= ' '
select
@s= @s+
case when dbid !> 31 then char(13)+ 'backup database '+quotename(Name)+ ' to disk = ' 'w:\ '+Name+ '_ '+convert(varchar(8),getdate(),112)+ '.bak ' ' with init ' else ' ' end,
@s2=@s2+
case when dbid > 31 then char(13)+ 'backup database '+quotename(Name)+ ' to disk = ' 'w:\ '+Name+ '_ '+convert(varchar(8),getdate(),112)+ '.bak ' ' with init ' else ' ' end,
@del=@del+
case when dbid !> 31 then char(13)+ 'exec master..xp_cmdshell ' ' del w:\ '+Name+ '_ '+convert(varchar(8),getdate()-4,112)+ '.bak ' ', no_output ' else ' ' end,
@del2=@del2+
case when dbid > 31 then char(13)+ 'exec master..xp_cmdshell ' ' del w:\ '+Name+ '_ '+convert(varchar(8),getdate()-4,112)+ '.bak ' ', no_output ' else ' ' end,
@del3=@del3+
case when dbid !> 31 then char(13)+ 'exec master..xp_cmdshell ' ' del w:\ '+Name+ '_ '+convert(varchar(8),getdate()-5,112)+ '.bak ' ', no_output ' else ' ' end,
@del4=@del4+
case when dbid > 31 then char(13)+ 'exec master..xp_cmdshell ' ' del w:\ '+Name+ '_ '+convert(varchar(8),getdate()-5,112)+ '.bak ' ', no_output ' else ' ' end,
@del5=@del5+
case when dbid !> 31 then char(13)+ 'exec master..xp_cmdshell ' ' del w:\ '+Name+ '_ '+convert(varchar(8),getdate()-6,112)+ '.bak ' ', no_output ' else ' ' end,
@del6=@del6+
case when dbid > 31 then char(13)+ 'exec master..xp_cmdshell ' ' del w:\ '+Name+ '_ '+convert(varchar(8),getdate()-6,112)+ '.bak ' ', no_output ' else ' ' end

from master..sysdatabases where dbid> 4 order by dbid asc

exec (@del+@del2+@del3+@del4+@del5+@del6)

exec(@s+@s2)