【问题标题】:SQL Server SQL query to escape the closing square bracket ]SQL Server SQL 查询转义右方括号]
【发布时间】:2018-01-06 19:46:50
【问题描述】:

我有一个名为 shreyanshdb] 的数据库,它有一个右方括号。 我想在 SQL Server 中使用 SQL 查询来执行这个数据库的备份。 但它给了我一个异常:Transact-sql 异常。

命令如下: 备份数据库 [shreyanshdb]] 到磁盘 = 'c:\DB'

我真的不知道如何逃脱右方括号...

【问题讨论】:

  • 应该谷歌“ms sql 转义字符”,first hit。不确定它是否会对您有所帮助,但至少向我们展示您所做的尝试。将问题标记为不清楚。
  • 没有什么可以添加的,但很想知道数据库是如何得到这个名字的,以及为什么你不能把它改成问题较少的东西。

标签: sql-server


【解决方案1】:

我认为您可以为此使用 sp_executesql。您将数据库名称作为参数传递的位置。

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

【讨论】:

  • 在 SQL Server 中,它实际上使用了以下命令: BACKUP DATABASE "shreyanshdb]" TO DISK = 'D:\LOG_DIR' 。它是如何与双引号一起工作的......实际上我必须在 c 中执行或编写这个 SQL 命令......所以我应该在数据库名称中附加双引号......
【解决方案2】:
BACKUP DATABASE [shreyanshdb]]] to disk = 'c:\DB'

您可以从QUOTENAME 函数文档中看到应该如何引用事物。对于方括号,右括号应该加倍。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多