2013-06-26 31 views
1

我已創建名稱爲「Departure _Date」的列,但它會自動更改爲「[Departure _Date]」(不在使用SQL Server Management Studio的查詢中)。如果我從列名稱中刪除空白空間,則沒有問題。任何人都可以詳細解釋..表列名稱用空格自動格式化創建,爲什麼..?

+4

不,列名只是'Departure _Date' - 但是如果你做了任何事情導致管理工作室生成一個引用它的腳本,它將被引用'[]'標記,否則腳本將會中斷因爲空格用於分隔SQL語法的各個部分 –

+0

爲什麼要爲此表命名?你已經發現了一個不便之處。關於什麼是「標準」命名約定存在很多爭論,但是這些辯論中沒有一個包括在對象名稱中是否存在空格是否是一個好主意;這被普遍認爲是不好的做法。 – GarethD

回答

3

推斷列方括號周圍的列名稱。即使你看不到他們,他們總是真的在那裏。

在列名和某些關鍵字中使用空格時,需要在引用列時更頻繁地使用方括號,包括表生成腳本和設計界面。

選擇出發_DATE FROM mytable的

例如,如果沒有方括號,這條SQL語句會選擇「離開」現場,並以「_DATE」的別名,它返回。

即使使用列名稱Departure_Date,該列也可以在SQL語句中被稱爲[Departure_Date]或Departure_Date。