我正在尝试运行备份脚本,但它不会运行。我找不到错误。
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
答案 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>