代码之家  ›  专栏  ›  技术社区  ›  x2. alexey

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

  •  1
  • x2. alexey  · 技术社区  · 15 年前

    我每天都安排在SQLServer2005中备份数据库。现在看起来是这样的:

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

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Nick Kavadias    15 年前

    假设您想在每个星期天重新初始化文件(您可以将其更改为您最喜欢的一周中的一天),您可以使用以下方法:

    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)