2017-07-31 75 views
0

我有db的名字是shreyanshdb],它有一个关闭方括号。 我想在SQL服务器中使用SQL查询执行此数据库的备份。 但它引发了一个异常:Transact-sql异常。SQL Server SQL查询来转义关闭方括号]

下面是一个命令: BACKUP DATABASE [shreyanshdb]到磁盘= 'C:\ DB'

我真的不知道我怎么逃脱右方括号...

+1

应谷歌“ms sql转义字符”,[第一击](https://stackoverflow.com/questions/5139770/escape-character-in-sql-server)。不知道它是否会帮助你,但至少告诉我们你做了什么。将问题标记为不清楚。 – Nukeface

+0

没有什么帮助添加,但着迷于知道数据库如何得到这个名称,以及为什么你不能将它改变成更少的问题。 – LoztInSpace

回答

0

我认为你可以使用sp_executesql来做到这一点。将数据库名称作为参数传递的地方。

https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql

+0

在SQL服务器中,它实际上使用以下命令:BACKUP DATABASE“shreyanshdb”“TO DISK ='D:\ LOG_DIR'。它怎么用双引号....它实际上我必须执行或写在c尖锐的SQL命令...所以我应该在db名称追加双引号... – shreyansh

0
BACKUP DATABASE [shreyanshdb]]] to disk = 'c:\DB' 

你可以看到的东西应该从QUOTENAME函数文档被引用。对于矩形括号,关闭支架应加倍。

最好不要在SQL Server中使用数据库名称,表名称,列名称或任何其他对象名称中的括号,空格或任何不规则的字符。