SQL Express:备份作业自动递增 date/time?

SQL Express: Backup job to auto increment date/time?

正在尝试创建一个备份作业以自动递增此脚本上的备份文件名,但在语法上得到了这个。 想法是设置一个每 x 小时运行一次的作业,并在同一位置备份数据库。文件名必须递增,否则作业将失败(是的,我已经尝试从 msdn 建议的方式执行此操作,但不知何故我的批处理文件不想工作。

USE TESTDB;
GO
declare @Date DATE = GetDate()
BACKUP DATABASE TESTDB
TO DISK = 'D:\Test\TESTDB.Bak' 
   WITH FORMAT,
      MEDIANAME = 'TESTDB',
      NAME = 'TESTDB'&@Date&'.BAK';
GO

作为日期使用 varchar 变量作为名称

declare @Date as varchar(20)
set @Date =   CAST( getdate() AS DATE);
declare @Name varchar(40) = 'Backup to TESTDB at'+@Date+'.BAK'
BACKUP DATABASE 'TESTDB'TO DISK = 'D:\TEST\TESTDB.Bak' 
 -- use NOFORMAT for Add Backup
  WITH NOFORMAT,
  MEDIANAME = 'TESTDB',
  NAME =@name;
go

这样您就可以为单独的备份更改磁盘名称

declare @Date as varchar(20)
set @Date =   CAST( getdate() AS DATE);
declare @disk varchar(100) = 'D:\TEST\TESTDB'+@Date+'.BAK'
declare @Name varchar(40) = 'Backup to TESTDB at'+@Date+'.BAK'
BACKUP DATABASE 'TESTDB'TO DISK = @disk
 -- use FORMAT for erase Backup
  WITH NOFORMAT,
  MEDIANAME = 'TESTDB',
  NAME =@name;
go