2011-06-23 6 views
3

Quelqu'un peut-il expliquer l'importance des parenthèses que MSManagement Studio encapsule toujours les colonnes dans les requêtes. Ex ..sql server management syntaxe de studio

SELECT TOP 1000 [id] 
    ,[app_fn] 
    ,[app_mn] 
    ,[app_ln] 
    ,[app_suffix] 

Que sont-ils là, et comment puis-je utiliser à mon avantage?

+0

Pour être clair: cela est parfaitement valide la syntaxe T-SQL qui fonctionnera partout - * pas * seulement dans Mgmt SQL Server Management Studio –

Répondre

5

Ils permettent d'utiliser des identifiants qui

  • ont des espaces
  • sont des mots réservés
  • début avec un nombre
  • utiliser la ponctuation
  • otherwise invalid

Essayez ceci sans [et]

CREATE TABLE dbo.[CREATE TABLE] (
    [SELECT] int NOT NULL, 
    [int] varchar(20) NOT NULL, 
    [NOT NULL] datetime NULL, 
    [Mary's Lamb] datetime NULL, 
    [666 The number of the "beast"!] datetime NULL 
    ) 

Dans ce cas, SSMS juste les utilise toujours

+0

Pour jouer en toute sécurité, oui. –

7

Ils sont normalement utilisés si vous utilisez un keyword comme nom de colonne. (Naughty)

Aussi, si vous avez un space dans votre nom de colonne (aussi vilain).

+0

Et pour protéger vous si votre colonne est un mot réservé. Aussi vilain. – asawyer

+0

+1 ..Aussi, ils peuvent être utilisés pour spécifier des noms de colonne qui sont les mêmes que les mots-clés dans SQL..Par exemple 'SELECT 'SOMETHING' [SELECT]' – Chandu

+1

Portant sur un meme-thème dans les commentaires est * aussi vilain * –

4

Heres un exemple

J'ai une table groupes appelés, il a des champs utilisateur, groupe

bien

, l'utilisateur et le groupe sont les deux mots réservés, en mettant automatiquement les crochets autour de la table, les champs, etc pas des problèmes surgiront.

si

select group from groups group by user 

échouerait

select [group] from [groups] group by [user] 

coutume.

+2

Egalement '[un nom de colonne avec des espaces ou des caractères réservés]' –

+0

Oui. Il couvre les espaces et les personnages réservés aussi – BugFinder

Questions connexes