2009-12-22 16 views
6

Necesito crear un formateador SQL en C#. ¿Alguien podría indicarme algunos recursos en la red? ¿Debo implementar un analizador completo o hay una manera más fácil de hacerlo?Formateador SQL usando C#

+0

¿Hay una manera más fácil de hacerlo? ¿No puedo formatearlo sin analizar? – BlueSilver

Respuesta

4

Hmm, otra pregunta que estoy tropezarse con mucho más tarde, pero en caso de que esto sea útil a alguien más abajo de la línea, he implementado un código abierto (AGPL) formateador de T-SQL: http://www.architectshack.com/PoorMansTSqlFormatter.ashx

Mi enfoque definitivamente no implica el análisis completo de SQL (T-SQL es un lenguaje muy complejo, no califico mis posibilidades de desarrollar y mantener un analizador completo por mi cuenta) sino más bien tokenizar y luego identificar las principales estructuras en el SQL, por palabra clave. El resultado es un árbol de análisis parcial con todas las partes relevantes para el formato explotadas.

Como se señala en las respuestas a la pregunta @astander vinculada a, hay opciones comerciales para el análisis completo de SQL y muchos analizadores sintácticos, pero no hay analizadores de T-SQL completos de código abierto que yo sepa.

Hacer un analizador para selecciones, actualizaciones y eliminaciones simples es sencillo: el manejo de tablas y subconsultas derivadas se vuelve un poco más difícil; luego, las cláusulas OUTPUT, MERGE, multi-declaración, CTE, las docenas de sentencias DDL que T-SQL contiene, etc.: se vuelve complicado.

+0

Esta biblioteca funcionó muy bien para mí, y ahora hay un Nuget también: http://nuget.org/packages/PoorMansTSQLFormatter/ –

+0

Fui a git hub, descargué el master y usé la aplicación winform. –

1

También existe el embellecedor SQLinForm SQL que tiene una API de C# en www.sqlinform.com

Cuestiones relacionadas