如何在备份文件中存储一定数量的备份

时间:2009-09-01 05:46:15

标签: sql-server sql-server-2005 backup

我每天都有计划在sqlserver 2005中备份我的数据库。现在它看起来像这样:

BACKUP DATABASE [db1] TO  DISK = N'D:\SqlServer\Backup\db1.bak' WITH  NOINIT ,  NOUNLOAD ,  NAME = N'db1backup',  NOSKIP ,  STATS = 10,  NOFORMAT

但在这种情况下,它会无限增长,我想在文件中只存储最后7个备份。我该怎么做(可能以某种方式删除旧备份)?

1 个答案:

答案 0 :(得分:1)

假设您希望每个星期天重新初始化文件(您可以将其更改为您最喜欢的一周),您可以使用以下内容:

declare @init_option nvarchar(50)
declare @cmd nvarchar(1000)
set @init_option = 'NOINIT'
IF (datename(dw, getdate())) = 'Sunday' set @init_option = 'INIT'
set @cmd ='BACKUP DATABASE [db1] TO  DISK = N''D:\SqlServer\Backup\db1.bak'' WITH  ' + @init_option + ' ,  NOUNLOAD ,  NAME = N''db1backup'',  NOSKIP ,  STATS = 10,  NOFORMAT'
EXECUTE(@cmd)