为什么备份sql server查询无法在没有变量的情况下工作?

时间:2012-08-24 11:28:17

标签: sql sql-server sql-server-2008 sql-server-2005

它正在......

declare @dbName varchar(50)
set @dbName='myDb'
    BACKUP DATABASE @dbName TO DISK = 'c:\backup\myDb.bak'

但是 为什么不起作用?两者都是类似的查询。

 BACKUP DATABASE 'mydb' TO DISK = 'c:\backup\myDb.bak'

1 个答案:

答案 0 :(得分:3)

documentation说:

BACKUP DATABASE { database_name | @database_name_var } 
    TO <backup_device> [ ,...n ] 

因此需要数据库名称(f.e. mydb)或变量(f.e。@dbname。)但不是字符串文字(f.e。'mydb'。)

只需省略引号即可将字符串文字更改为数据库名称:

BACKUP DATABASE mydb TO DISK = 'c:\backup\myDb.bak'