方括號允許您爲包含不允許用於列名或別名的字符的列或別名使用名稱。用方括號括起來的表/列名稱,即使它們的名稱由合法字符組成
a)我注意到很多時候,表名和列名被括在方括號中,即使它們的名字由完全合法的字符組成。這是爲什麼?
b)據我所知,包圍對象名稱的方括號實際上並不是該名稱的一部分。因此,如果我們創建了一個名爲[A]表:
CREATE TABLE [A] (…)
我們可以在以後引用它,而不使用括號:
SELECT * FROM A
但是,爲什麼是不一樣的真當我嘗試引用列從CONTAINSTABLE函數返回的表中的KEY?也就是說,如果我省略封閉列名的括號,我得到一個錯誤:
SELECT ct.KEY
FROM CONTAINSTABLE(fullText,*,'some_string') as ct
感謝名單
但我也看到了不少查詢(不能自動通過一些工具生成),其中方括號在封閉表/列名稱的情況下,即使名稱未使用保留字或非法字符。也許是爲了可讀性而添加括號? – AspOnMyNet 2010-05-22 19:21:33
我想這只是一個味道問題。我不親自把它們放在上面,因爲我很懶,不喜歡打字。另外,如果您曾經在SSMS中使用過「編輯器設計中的設計查詢」,它將會將它們全部剝離。 – 2010-05-22 19:38:14
謝謝你們的幫助 – AspOnMyNet 2010-05-22 20:24:34