2010-06-01 24 views
5

¿Alguien puede ayudarme?Cómo analizar archivos SQL usando C#?

Tengo un montón de archivos .sql. Quiero analizar (validar) esos archivos antes de ejecutarlos en el servidor.

Tengo muchos sitios en línea que analizan el código. Pero quiero analizar el código usando C#.

Así que por favor, puede guiar. Si hay alguna herramienta, dll que necesito usar.

sólo quiero analizar el archivo y lo ejecuta

+0

¿Realmente desea analizar completamente el archivo SQL? ¿O simplemente verifica si es SQL válido que no tendrá errores cuando se ejecute? – BradC

+1

@BradC - o al menos, no lanzará un error * parse * cuando se ejecute; p –

+0

¿desea validar la sintaxis de sql? – Arseny

Respuesta

13

Una forma de hacerlo es ejecutarlo en el servidor, excepto con SET PARSEONLY ON (para que se analice pero no se ejecute): Creo que así es como lo hace MS Query Analyzer.

0

Visual Studio solía tener algo que se llama Visual Studio for Database Professionals. Más tarde se convirtió en Team Developer.

De todos modos, "compilaron" el código sql ejecutándolo en una base de datos y probando los resultados. Imagino que si así es como estaban verificando que funcionó, es probablemente la mejor manera de que tú también lo hagas.

3

Puede tener procedimiento que puede llegar a la consulta como entrada y
en el lado de SQL Server que puede tener una declaración SET PARSEONLY ON y luego "ejecutar" la consulta . La consulta no se ejecutará en realidad, pero se informará cualquier error.

1

Debe preguntarse dos veces (o tal vez incluso tres veces :-)) si realmente desea hacer esto.

Incluso si encuentra una solución que parece funcionar para los archivos que tiene ahora, probablemente habrá todo tipo de casos de esquina que no se cubrirán. La sugerencia de analizar un motor de base de datos local es viable, pero aún puede haber muchas diferencias de sintaxis pequeñas entre lo que hace localmente y lo que sucede en el servidor.

Mi consejo es dejar que el servidor lo analice y lo valide, básicamente es la única forma de estar realmente seguro.

1

El DMS Software Reengineering Toolkit tiene analizadores de SQL, utilizados para compilar muchas herramientas basadas en SQL.

Una de estas herramientas es un formateador Formatter, que analiza el texto fuente y formatea muy bien el resultado. Si el formateador no analiza el origen, produce un estado de proceso distinto de cero.

Simplemente podría "formatear" un archivo; si el formateo falla, no es una sintaxis legal.

Estos formateadores son productos comerciales.

EDITAR Ago 2011: el analizador SQL de DMS ahora maneja la gramática estándar completa de SQL 2011.

Cuestiones relacionadas