Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL脚本备份_Sql_Sql Server - Fatal编程技术网

SQL脚本备份

SQL脚本备份,sql,sql-server,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 我现在得到了正确的脚

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

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
我现在得到了正确的脚本:

声明@MyFileName varchar50 SELECT@MyFileName=SELECT 'D:\BackupTest\MCI_'+convertvarchar8,getdate,112+'.bak' 将数据库[METROEXPRESS]备份到磁盘=@MyFileName


不能对备份文件名进行任何内联计算

但是,至少在我测试过的SQL Server 2012中,您可以创建一个NVARCHAR200类型的变量,然后填充并使用它:

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中的一项新功能—我当时的印象是,我在早期版本上尝试过这一功能,但当时无法使其正常工作—但现在它肯定能正常工作。

据我所知,你不能像你那样构造你的文件名-你必须提供一个完全限定和明确指定的文件名不能使用变量或函数来指定文件名,抱歉我不明白…我只是在尝试创建备份数据库时得到了脚本…然后只是添加了getdate函数来更改名称…哦。。。好的……我现在明白了D谢谢…:D我有什么办法可以做到吗?。。我的意思是备份一个数据库并更改其名称..到备份日期…通过脚本…谢谢…我从你那里得到了这个想法…:这是我现在使用的脚本。。。