SQL脚本备份

时间:2013-04-13 07:12:51

标签: sql sql-server

我正在尝试运行备份脚本,但它不会运行。我找不到错误。

BACKUP DATABASE [METROEXPRESS] TO  
DISK = N'D:\BackupTest\MCI_'+convert(varchar(8),getdate(),112)+'' WITH NOFORMAT, 
NOINIT,  NAME = N'METROEXPRESS-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, 
STATS = 10
GO

我现在得到了正确的脚本:

  

DECLARE @MyFileName varchar(50)SELECT @MyFileName =(SELECT   'D:\ BackupTest \ MCI_'+ convert(varchar(8),getdate(),112)+'。bak')   BACKUP DATABASE [METROEXPRESS] DISK = @ MyFileName

1 个答案:

答案 0 :(得分:1)

您无法对备份文件名进行任何“内联”计算。

但是,至少在SQL Server 2012(我测试过它)中,可以创建NVARCHAR(200)类型的变量并填充并使用它:

DECLARE @DiskFile NVARCHAR(200)
SET @DiskFile = N'D:\Temp\MCI_' + CONVERT(NVARCHAR(8), GETDATE(), 112) + N'.bak'

BACKUP DATABASE [METROEXPRESS] TO  
DISK = @DiskFile WITH NOFORMAT, 
NOINIT,  NAME = N'METROEXPRESS-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, 
STATS = 10

我不确定这是否是SQL Server 2012中的新功能 - 我的印象是我在早期版本上尝试过这种功能而无法让它工作(当时) - 但现在它肯定能够正常工作。 / p>