Ich muss einen SQL-Formatierer in C# erstellen. Könnte mich jemand auf einige Ressourcen im Netz hinweisen? Muss ich einen vollwertigen Parser implementieren, oder gibt es einen einfacheren Weg dazu?SQL Formatter mit C#
Antwort
Yup, wenn Sie es analysieren können Sie es formatieren. –
Wenn ich in einem Knirschen am hav und brauchen etwas, zumindest Blick "formatiert" zu machen, ich springen zu
Hmm, eine andere Frage, die ich bin Stolpern über viel später, aber falls dies sonst jemand auf der ganzen Linie nützlich ist, habe ich implementiert eine Open-Source (AGPL) T-SQL Formatierer: http://www.architectshack.com/PoorMansTSqlFormatter.ashx
Mein Ansatz beinhaltet definitiv kein vollständiges SQL-Parsing (T-SQL ist eine sehr komplexe Sprache, ich bewerte nicht meine Chancen, einen kompletten Parser selbst zu entwickeln und zu pflegen), sondern token und identifizieren dann Hauptstrukturen im SQL, Nach Stichwort. Das Ergebnis ist ein partieller Syntaxbaum mit allen formatierungsrelevanten Teilen.
Wie in Antworten auf die Frage @astander verlinkt, gibt es kommerzielle Optionen für umfassende SQL-Parsing und viele Parser-Builder da draußen - aber keine vollständigen Open-Source-T-SQL-Parser als ich weiß.
Einen Parser für einfache Auswahlen, Aktualisierungen, Löschungen zu erstellen, ist einfach - die Verarbeitung von abgeleiteten Tabellen und Unterabfragen wird ein wenig schwieriger; dann OUTPUT-Klauseln, MERGE-Anweisungen, Multi-Statement-Skripte, CTEs, die Dutzende von DDL-Anweisungen, die T-SQL enthält, usw.: Es wird unordentlich.
Diese Bibliothek funktionierte wirklich gut für mich, und es gibt jetzt auch ein Nuget für sie gepackt: http://nuget.org/packages/PoorMansTSQLFormatter/ –
Ich ging zum git Hub, lud den Master herunter und nutzte die winform App. –
Es gibt auch die SQLinForm SQL beautifier, die eine C# API bei www.sqlinform.com hat
- 1. Objective c string formatter für entfernungen
- 2. Eclipse Formatter mit m2e konfigurieren
- 3. Fehler mit Joda Datetime-Formatter
- 4. Konfigurieren NetBeans Formatter
- 5. Perl Tap-Formatter-Junit Probleme
- 6. JavaScript Injektion, sondern bieten einen ckeditor mit Code Formatter
- 7. PHP Formatter für einzeilige Codeblocks
- 8. Eclipse 4.5 Java Formatter geändert
- 9. Anzahl Formatter: 00 nicht 0
- 10. Ärger Gebäude TAP :: Formatter :: HTML unter Windows
- 11. Fehler beim Schreiben in Datei (JAVA) mit Formatter mit ActionListener
- 12. Code Formatter: Aufräumen schrecklich formatiert JSP-Code
- 13. Versuch String.split() regex auf String zu verwenden, erstellt mit Formatter
- 14. Hinweis von Toad for Oracle Formatter
- 15. Paramaterized SQL C# mit DateTimes
- 16. Wie serialisiert man eine Ausnahme (mit verschachtelten Ausnahmen) mit SOAP Formatter?
- 17. Formatierung des `// @ formatter: off`-Tags in der Eclipse
- 18. Wie schließe ich Java Formatter, endlich oder nicht?
- 19. Escaping-Werte in SQL-Abfragen (C# mit SQL-Connector)
- 20. Importieren von XML in SQL mit C#
- 21. ASP/C# - SQL- connectien mit Update
- 22. Sum SQL-Spalten mit float (C#)
- 23. Verbinden mit einer SQL-Datenbank in C#
- 24. C# SQL-Abfrage Fehler mit Format dd.MM.yyyy
- 25. SQL Escape mit SQLite in C#
- 26. Dynamische SQL-Abfrage mit Parametern in C#
- 27. Entschlüsseln mit AES256 - Transact SQL oder C#
- 28. Backup SQL DATABASE mit C# 3.0
- 29. SQL-Export zu ListView mit C#
- 30. Erstellen neuer SQL-Server-Tabelle mit C#
Gibt es einen einfacheren Weg, es zu tun? Kann ich es nicht ohne Parsing formatieren? – BlueSilver