2017-07-31 72 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中使用數據庫名稱,表名稱,列名稱或任何其他對象名稱中的括號,空格或任何不規則的字符。