2009-10-09 82 views
6

生成當代碼/腳本,爲什麼SQL Server Management Studio使用方括號生成代碼?

  1. 爲什麼用方括號,而不是雙引號SQL Server Management Studio中生成的代碼?

    SELECT [NAME] FROM [TABLE]

  2. ,是有辦法(設置/註冊表項),以將其配置爲使用雙引號(標準)呢?

    SELECT 「NAME」 FROM 「TABLE」

這是非常MSFT-TY功能,因爲他們所有的文檔現在表明雙引號(見this

+0

你說「雙引號[是](標準)」。這是一個ANSI標準嗎? – 2009-10-09 17:24:23

+0

是的,它是ANSI標準 – van 2009-10-10 13:40:04

+0

「使用括號[和]來分隔標識符不受QUOTED_IDENTIFIER設置的影響。」我認爲Sybase的遺產和它的行爲是爲什麼這變得有必要。 – shawnt00 2015-09-23 20:26:44

回答

3

爲什麼sql-server(管理工作室)使用方括號生成代碼?

SELECT [NAME] FROM [表格]

爲了應付是保留字或包含空格的名稱。

方括號是包裝標識符的本地方式。他們是不對稱的,可以是無與倫比的,而報價是對稱的,應當匹配(或一倍,包括他們到名):

CREATE TABLE [[test] (id INT) 
CREATE TABLE ["test] (id INT) 
DROP TABLE "[test" 
DROP TABLE """test" 
+0

好點,我知道。我應該改變我的問題的措辭:我的意思是爲什麼方括號而不是雙引號。將修復。 – van 2009-10-09 14:32:06

+0

雖然它只涵蓋了我的一半問題,但我會接受答案,因爲不對稱是一個非常好的論點。 – van 2011-07-06 12:03:36

2

您的鏈接解釋了爲什麼,至少對我來說。括號不設置相關的,但「有效性取決於QUOTED_IDENTIFIER設置。

1

要回答你的問題的另一半,也就是在SQL Server Management Studio中的解決方法與全部替換命令(按Ctrl + ^h):

  • 查找內容:"
  • 檢查:[\[\]]
  • 替換爲 「使用」,然後選擇 「正則表達式」
  • 按「全部替換」

有想法,這也將更換支架的出現在你的評論。

相關問題