Je dois créer un formateur SQL en C #. Quelqu'un pourrait-il me dire des ressources sur le net? Dois-je mettre en place un analyseur à part entière ou y a-t-il un moyen plus facile de le faire? P>
4 Réponses :
Quand je suis dans un crunch et que je dois faire quelque chose au moins regarder "formaté", je saute à p>
hmm, une autre question que je suis trébuchée sur beaucoup em> plus tard, mais si cela est utile à quelqu'un d'autre dans la ligne, j'ai mis en place une formatrice T-SQL open-source (AGPL) : http://www.architecthack.com/poormanstsSQLformatter.ashx p>
Mon approche n'implique définitivement pas l'analyse complète du SQL (T-SQL est une langue très complexe, je n'ai pas évalué mes chances de développer et de maintenir un analyseur complet à la mienne), mais plutôt de la jeton, puis d'identifier des structures majeures dans le SQL, par mot-clé. Le résultat est un arbre d'analyse partielle avec toutes les pièces pertinentes de formatage décomposées. P>
Comme indiqué dans les réponses à la question ® ®TANDER lié, il existe des options commerciales pour une analyse complète SQL et de nombreux constructeurs d'analyseurs, mais pas d'analyseurs T-SQL open-source complets que je ne le connais. P >
Faire un analyseur pour des sélection simples, des mises à jour, les suppressions sont droites - la manipulation des tables dérivées et des sous-requêtes devient un peu plus difficile; Ensuite, les clauses de sortie, les instructions de fusion, les scripts multi-instructions, les CTES, les dizaines d'instructions DDL T-SQL contiennent, etc.: il devient désordonné. P>
Cette bibliothèque a vraiment bien fonctionné pour moi, et il y a un Nuget emballé maintenant pour cela maintenant: Nuget.org/packages/poormanstsqlformatter
Je suis allé à Github, téléchargé le maître et utilisé l'application Winform.
Sachez qu'il est sous licence sous AGPL, donc si vous l'utilisez, vous devez ouvrir votre propre code.
Il y a aussi l'embellissement SQLINORMForm SQL qui a une API C # à l'adresse www.sqlinform.com p>
Y a-t-il un moyen plus facile de le faire? Je ne peux pas le formater sans analyser?