4

我了解方括号允许使用保留名称或以前不允许的字符,例如标识符中的空格。我认为将它们添加到任何地方都是很好的做法。(见sql语句中方括号[]有什么用?

但是,我注意到当我在 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

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

是否有应该使用方括号的规则?

4

1 回答 1

2

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

于 2013-08-12T15:25:49.813 回答