sql - 为什么备份 sql server 查询在没有变量的情况下不起作用?

标签 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'

最佳答案

documentation说:

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

因此它需要一个数据库名称(例如mydb)或一个变量(例如@dbname。),但不是字符串文字(例如'mydb'。)

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

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

关于sql - 为什么备份 sql server 查询在没有变量的情况下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108548/

相关文章:

c# - 如何优化 ASP.NET MVC Controller 以最小化数据库查询次数

sql-server - 在使用 SQL Server 数据库邮件创建的电子邮件中嵌入图像

sql - 连接两个表时计算不同的计数

sql - 帮我解决这个 SQL 查询

sql - 在 SQL Server 中计算时间差(以分钟为单位)

c# - C# 中的 uniqueidentifier 等效数据类型

sql - 从引用先前声明的变量的 CASE 语句分配 T-SQL 变量

sql - 如何在动态查询中使用表变量

SQL Server : Deleting Rows with Foreign Key Constraints: Can Transactions override the constraints?

mysql - 如何使用 UNION 将两个不同查询的结果相加