生成當代碼/腳本,爲什麼SQL Server Management Studio使用方括號生成代碼?
爲什麼用方括號,而不是雙引號SQL Server Management Studio中生成的代碼?
SELECT [NAME] FROM [TABLE]
,是有辦法(設置/註冊表項),以將其配置爲使用雙引號(標準)呢?
SELECT 「NAME」 FROM 「TABLE」
這是非常MSFT-TY功能,因爲他們所有的文檔現在表明雙引號(見this)
生成當代碼/腳本,爲什麼SQL Server Management Studio使用方括號生成代碼?
爲什麼用方括號,而不是雙引號SQL Server Management Studio中生成的代碼?
SELECT [NAME] FROM [TABLE]
,是有辦法(設置/註冊表項),以將其配置爲使用雙引號(標準)呢?
SELECT 「NAME」 FROM 「TABLE」
這是非常MSFT-TY功能,因爲他們所有的文檔現在表明雙引號(見this)
爲什麼sql-server(管理工作室)使用方括號生成代碼?
SELECT [NAME] FROM [表格]
爲了應付是保留字或包含空格的名稱。
方括號是包裝標識符的本地方式。他們是不對稱的,可以是無與倫比的,而報價是對稱的,應當匹配(或一倍,包括他們到名):
CREATE TABLE [[test] (id INT)
CREATE TABLE ["test] (id INT)
DROP TABLE "[test"
DROP TABLE """test"
您的鏈接解釋了爲什麼,至少對我來說。括號不設置相關的,但「有效性取決於QUOTED_IDENTIFIER設置。
要回答你的問題的另一半,也就是在SQL Server Management Studio中的解決方法與全部替換命令(按Ctrl + ^h):
"
[\[\]]
有想法,這也將更換支架的出現在你的評論。
你說「雙引號[是](標準)」。這是一個ANSI標準嗎? – 2009-10-09 17:24:23
是的,它是ANSI標準 – van 2009-10-10 13:40:04
「使用括號[和]來分隔標識符不受QUOTED_IDENTIFIER設置的影響。」我認爲Sybase的遺產和它的行爲是爲什麼這變得有必要。 – shawnt00 2015-09-23 20:26:44