Lors de la génération de code / de scripts, p>
Pourquoi SQL Server Management Studio génère-t-il du code utilisant des crochets et non des guillemets à double guillemets? P>
Sélectionnez [Nom] à partir de [Tableau] P> LI>
est-il une manière (entrée de réglage / registre) pour la configurer pour utiliser des guillemets (la norme) à la place? p>
Sélectionnez "Nom" de "Table" P> LI> ol>
Cette fonctionnalité est très msft-TY, étant donné que toute leur documentation indique maintenant les doubles citations (voir Ce ) em> p>
3 Réponses :
Pourquoi SQL-Server (Studio de gestion) génère un code utilisant des crochets? P>
Sélectionnez [Nom] de [Table] P>
Pour faire face aux noms des mots réservés ou contiennent des suites blouses. p>
Les crochets sont le moyen natif d'envelopper les identificateurs. Ils sont asymétriques et peuvent être inégalés, tandis que les citations sont symétriques et doivent être assorties (ou doublées pour les inclure dans le nom): P>
CREATE TABLE [[test] (id INT) CREATE TABLE ["test] (id INT) DROP TABLE "[test" DROP TABLE """test"
Bon point, je le sais. Je devrais changer de libellé de ma question: je voulais dire pourquoi le support carré et non des citations doubles. réparera.
Bien que cela ne couvre que la moitié de ma question, j'accepterai la réponse car l'assignme est un très bon argument.
Votre lien explique pourquoi, du moins pour moi. Les supports ne sont pas dépendants de la réglage, mais la validité de "dépend du paramètre cité_identifier. P>
Pour répondre à l'autre moitié de votre question, il existe une solution de contournement dans SQL Server Management Studio avec la commande Remplacer toutes les commandes ( Ctrl kbd> + H kbd>): P>
N'ayez à l'esprit que cela remplacera également des occurrences de parenthèses dans votre commentaire. P>
[\ [\]] code> li>
" code> li>
Vous dites "double citations [sont] (la norme)". Est-ce une norme ANSI?
Oui, c'est la norme ANSI
"Utiliser des crochets, [et], pour délimiter les identificateurs n'est pas affecté par le paramètre cité_identifier." Je pense que l'héritage Sybase et ses comportements sont pourquoi cela est devenu nécessaire.