2017-07-31 15 views
0

名前がshreyanshdbのdbを持っています。これは閉じ角括弧を持っています。 SQLサーバでSQLクエリを使用して、このdbのバックアップを実行したかったのです。 しかし、それは私に例外を投げている:Transact - SQLの例外。ここで閉じる角括弧をエスケープするSQL Serverのクエリ]

コマンドです: のBACKUP DATABASE [shreyanshdb]]ディスク=への 'C:\ DB'

私は本当に私が閉じ角括弧をエスケープんかわからない...

+1

google "ms sqlエスケープ文字"、[first hit](https://stackoverflow.com/questions/5139770/escape-character-in-sql-server)にする必要があります。それがあなたに役立つかどうかは確かではありませんが、少なくともあなたが試したことを私たちに示してください。疑問を不明瞭にする – Nukeface

+0

追加するのに役立つものは何もありませんが、DBにその名前がどのように付けられているのか、それほど問題にならない理由を知ることに魅了されるものはありません。 – LoztInSpace

答えて

0

私はこれのためにsp_executesqlを使うことができると思います。ここでは、databasenameをパラメータとして渡します。

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機能のドキュメントから引用しなければならないかを見ることができます。長方形のブラケットの場合は、閉じブラケットを2倍にする必要があります。

SQL Serverのデータベース名、テーブル名、列名、またはその他のオブジェクト名に、かっこ、スペース、または不規則な文字を使用しないことをお勧めします。

関連する問題