何时不使用方括号?

时间:2013-08-12 15:14:11

标签: sql-server tsql syntax

据我所知,方括号允许使用保留名称或以前不允许使用的字符,例如标识符中的空格。我认为在各处添加它们都是很好的做法。 (见What is the use of the square brackets [] in sql statements?

但是,我注意到当我在COL_LENGTH函数中使用它们时,我得到了一些意想不到的结果:

SELECT COL_LENGTH(N'[TestTable]', N'[RatingID]')    -- Returns NULL
SELECT COL_LENGTH(N'TestTable', N'[RatingID]')      -- Returns NULL
SELECT COL_LENGTH(N'[TestTable]', N'RatingID')      -- Returns 10
SELECT COL_LENGTH(N'TestTable', N'RatingID')        -- Returns 10

我可以看到,通过在单引号中定义列名,方括号变得多余,但我不明白为什么它们会中断调用。方括号适用于表格参数会增加我的困惑。

是否应该使用方括号

的规则?

1 个答案:

答案 0 :(得分:2)

不要将方括号传递给仅在实际SQL语句中使用字符串的函数。该函数正在寻找一个名称包括方括号的表。