2009-10-09 6 views
6

Lors de la génération de code/scripts,Pourquoi SQL Server Management Studio génère-t-il du code à l'aide de crochets?

  1. pourquoi ne génère le code SQL Server Management Studio en utilisant des crochets et pas des guillemets doubles?

    SELECT [NOM] DE [TABLEAU]

  2. et est-il un moyen (réglage/entrée de Registre) pour le configurer pour utiliser des guillemets doubles (le standard) au lieu?

    SELECT "NOM" DE "TABLE"

Ceci est très caractéristique MSFT-ty, étant donné que tous leurs documents indiquent maintenant les guillemets doubles (voir this)

+0

Vous dites "guillemets doubles [sont] (le standard)". Est-ce une norme ANSI? –

+0

oui, c'est la norme ANSI – van

+0

"L'utilisation de parenthèses, [et], pour délimiter les identifiants n'est pas affectée par le paramètre QUOTED_IDENTIFIER." Je pense que l'héritage de Sybase et ses comportements sont la raison pour laquelle cela est devenu nécessaire. – shawnt00

Répondre

3

pourquoi sql-server (studio de gestion) génère-t-il du code en utilisant des crochets?

SELECT [NOM] DE [TABLEAU]

Pour faire face aux noms qui sont des mots réservés ou contiennent des espaces.

Les crochets sont la manière native d'envelopper les identificateurs. Ils sont asymétriques et peuvent être inégalée, tandis que les guillemets sont symétriques et doivent être adaptés (ou doublé de les inclure dans le nom):

CREATE TABLE [[test] (id INT) 
CREATE TABLE ["test] (id INT) 
DROP TABLE "[test" 
DROP TABLE """test" 
+0

bon point, je le sais. Je devrais changer la formulation de ma question: je voulais dire pourquoi crochets et pas de guillemets. réparera. – van

+0

Bien qu'il ne couvre que la moitié de ma question, j'accepterai la réponse car l'asymétrique est un très bon argument en effet. – van

2

Votre lien explique pourquoi, au moins pour moi. Les supports ne sont pas mise en charge, mais la validité de "dépend du réglage QUOTED_IDENTIFIER.

1

Pour répondre à l'autre moitié de votre question, il existe une solution dans SQL Server Management Studio avec la Remplacer commande (Ctrl + H):

  • Trouvez ce que: [\[\]]
  • Remplacer par: "
  • Cochez la case "Utiliser:" et sélectionnez "expressions régulières"
  • Appuyez sur « Remplacer tout »

avoir à l'esprit que cela remplacera également les occurrences de crochets dans votre commentaire.

Questions connexes