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
正在尝试创建一个备份作业以自动递增此脚本上的备份文件名,但在语法上得到了这个。 想法是设置一个每 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