我需要使用日期数据库备份数据库名称

时间:2017-10-20 07:30:57

标签: sql-server ssis database-backups

我需要每天进行数据库备份并将日期添加到数据库名称中 - 如下所示:Navigate_2017-10-20.bak

如何将动态查询与数据库名称和日期一起使用?

DECLARE @Date DATE = GETDATE()

SELECT @Date

BACKUP DATABASE [Navigate] 
TO DISK = N'D:\Working\Navigate_'+ @Date +'.bak' 
WITH NOFORMAT, NOINIT,  
NAME = N'Navigate-Full Database Backup', 
SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
GO

3 个答案:

答案 0 :(得分:2)

将Date转换为字符串并预先创建文件名:

DECLARE @Filename NVARCHAR(MAX);

SELECT @FILENAME = N'D:\Working\Navigate_'+ CONVERT(char(10), GetDate(),126) +'.bak';


BACKUP DATABASE [Navigate] 
TO  DISK = @FILENAME WITH NOFORMAT, NOINIT,  
NAME = N'Navigate-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10;
GO

答案 1 :(得分:0)

DECLARE @Date DATE = GETDATE()

SELECT @Date

BACKUP DATABASE [Navigate] 
TO  DISK = N'D:\Working\Navigate_'+ CONVERT(NVARCHAR(20),@Date,105) +'.bak' WITH NOFORMAT, NOINIT,  
NAME = N'Navigate-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
GO

答案 2 :(得分:0)

使用此

DECLARE @Date NVARCHAR(20) = CONVERT(NVARCHAR(20),GETDATE(),105)
SELECT @Date
BACKUP DATABASE [Navigate] 
TO  DISK = N'D:\Working\Navigate_'+ @Date +'.bak' WITH NOFORMAT, NOINIT,  
NAME = N'Navigate-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
相关问题