2010-05-22 4 views
2

Les crochets vous permettent d'utiliser des noms de colonnes ou d'alias contenant des caractères non autorisés pour les noms de colonne ou les alias.Les noms de table/colonne entre crochets, même si leur nom est composé de caractères légaux

a) J'ai remarqué que beaucoup de fois les noms de tables et de colonnes sont entre crochets, même si leur nom est composé de caractères parfaitement légaux. Pourquoi donc?

b) Autant que je sache, les crochets entourant le nom de l'objet ne font pas réellement partie de ce nom. Ainsi, si nous créons une table nommée [A]:

CREATE TABLE [A] (…) 

nous pouvons référencer plus tard, sans l'aide de crochets:

SELECT * FROM A 

Mais pourquoi est pas le même vrai lorsque je tente de référencer une colonne KEY d'une table renvoyée par la fonction CONTAINSTABLE? A savoir, si je laisse de côté les crochets enserrant nom de colonne, je reçois une erreur:

SELECT ct.KEY 
FROM CONTAINSTABLE(fullText,*,'some_string') as ct 

Thanx

Répondre

1

KEY est un mot réservé dans SQL exige les supports pour l'utiliser comme un nom de colonne.

Je pense que la plupart du temps, vous voyez des crochets superflus peuvent être générés par un code. Management Studio les met en service lors de la génération de certains scripts.

+0

Mais j'ai vu aussi tout à fait quelques requêtes (non généré automatiquement par un outil) où CROCHETS où entourant des noms de table/colonne, même si les noms n'ont pas utilisé de mots réservés ou de caractère illégal. Est-ce que des parenthèses sont peut-être ajoutées pour plus de lisibilité? – AspOnMyNet

+1

Je suppose que c'est juste une question de goût. Je ne les mets pas personnellement parce que je suis paresseux et n'aime pas taper. Aussi, si jamais vous utilisez la "requête de conception dans l'éditeur" dans SSMS, il les supprimera tous. –

+0

merci à vous deux pour votre aide – AspOnMyNet

1

Les crochets ne sont pas seulement pour les caractères légaux mais pour permettre l'utilisation de mots autrement réservés pour les noms de colonnes, etc.

Questions connexes