2010-08-23 96 views
13

我在sql server 2008中添加了一個字段,它將列名放在括號中,如[column2],但其他列名沒有括號。括號是什麼意思?sql server:括號意味着列名稱的含義是什麼?

列是[macro-writer]

我應該去掉負號,並用下劃線代替?

+0

該列是[macro-writer] – 2010-08-23 20:13:54

+1

OP表示'我應該刪除減號並用下劃線替換'。我會,如果只是這樣,我不必在每個地方都使用'['和']'! – 2010-08-23 20:26:26

回答

12

用方括號括起來的列通常是關鍵字或包含特殊字符或空格。

你括在括號裏的是什麼特定的列名?

+0

[宏作家] [宏作家] – 2010-08-23 20:16:24

+2

連字符被認爲是特殊字符。 – Bernard 2010-08-23 20:20:53

18

括號是引用的一種形式。只有在列名包含空格或標點符號或與保留字衝突時纔有必要,但許多向導只會爲所有字段名添加括號,以避免決定是否有必要的邏輯。

2

方括號允許您在SQL Server中分隔名稱。這允許你做這樣的事情,例如使用關鍵字[count]或包含空格[我的列名]。

編輯:對於您的後續問題,如果這是一個新列,並且沒有破壞現有代碼的風險,那麼我至少建議用下劃線替換連字符。我們自己的內部命名標準是使用PascalCase(例如,MacroWriter)而不是下劃線。

4

支架可以使您使用的是不允許像空格字符和名稱,保留字和字符開頭的號碼

無效我的專欄,1column山坳%UMN,表

有效 [我的專欄],[1column],[COL UMN%],[表]

當然

現在你就可以成爲真正的創意:-)

create table [table]([table] varchar(20)) 

insert [table] values ('table') 

select [table] from [table] 
+0

你永遠不會有一張混合了希伯來文和泰文字體的桌子 – 2010-08-23 20:42:19

+0

那麼,爲什麼不嘗試它並親自看看;)。 Works on SQL 2005,2008 create table [顯示結果] ( \t ID int not null ) – StuartLC 2010-08-25 07:49:55

+0

@StuartLC它也可以不用括號。 – mbomb007 2015-08-10 16:34:27

相關問題