角かっこを使用すると、予約済みの名前や以前は許可されていなかった文字 (スペースなど) を識別子に使用できることを理解しています。それらをどこにでも追加することは良い習慣だと思いました。( 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
一重引用符で列名を定義すると、角括弧が冗長になることがわかりますが、なぜ呼び出しが中断されるのかわかりません。角括弧がテーブル引数で機能することは、私の混乱を増します。
角括弧を使用してはいけない場合のルールはありますか?