Je comprends que les crochets permettent l'utilisation de noms réservés ou de caractères précédemment interdits tels que des espaces dans vos identifiants. Je pensais que les ajouter partout était une bonne pratique. (Voir What is the use of the square brackets [] in sql statements?)Quand les crochets ne doivent-ils pas être utilisés?
Cependant, je remarque que lorsque je les utilise dans la fonction col_length, je reçois des résultats inattendus:
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
Je peux voir que, en définissant le nom de colonne dans des guillemets simples, la place les crochets deviennent redondants, mais je ne comprends pas pourquoi ils rompent l'appel. Que les crochets fonctionnent pour l'argument de la table augmente ma confusion.
Existe-t-il une règle pour l'utilisation des crochets ?
Vous ne voulez pas non plus utiliser les parenthèses aveC#temp. Au moins, j'ai eu des problèmes avec les parenthèses et #temp. – Paparazzi