如何使用C#解析SQL文件?

时间:2010-06-01 18:41:45

标签: c# sql parsing validation

有人可以帮助我吗?

我有一堆.sql文件。我想在服务器上执行这些文件之前解析(验证)这些文件。

我有许多解析代码的在线网站。但我想用C#解析代码。

所以,请你指导。如果有任何工具,我需要使用dll。

我只想解析文件而不执行它

7 个答案:

答案 0 :(得分:13)

一种方法是在服务器上执行它,除了SET PARSEONLY ON(以便它被解析但不执行):我认为这是MS查询分析器的工作方式。

答案 1 :(得分:3)

您可以拥有可以将查询作为输入的程序和
在SQL Server端,您可以拥有SET PARSEONLY ON语句,然后“运行” 查询。查询实际上不会运行,但会报告任何错误。

答案 2 :(得分:1)

Antler Parser Generator是您最好的选择。对于您想要解析的SQL版本,可能存在预定义的语法。

答案 3 :(得分:1)

如果你真的想这样做,你应该问自己两次(或者甚至三次:-))。

即使您找到了一个解决方案,这似乎适用于您现在拥有的文件,也可能会出现各种不适用的角落案例。让本地数据库引擎解析它的建议是可行的,但在本地执行的操作与服务器上发生的操作之间仍然存在许多小的语法差异。

我的建议是让服务器解析并验证它 - 这基本上是唯一真正确定的方法。

答案 4 :(得分:1)

DMS Software Reengineering Toolkit有SQL解析器,用于构建许多基于SQL的工具。

一个这样的工具是Formatter Formatter,它解析源文本并很好地格式化结果。如果格式化程序无法解析源,则会产生非零的进程状态。

您可以简单地“格式化”文件;如果格式化失败,则不是合法语法。

这些格式化程序是商业产品。

EDIT 2011年8月:DMS SQL解析器现在处理完整的SQL 2011标准语法。

答案 5 :(得分:0)

快速谷歌通过http://www.antlr.org/或其中一个plugin for ms sql

提出other sql dialects

答案 6 :(得分:0)

Visual Studio曾经有一些名为Visual Studio for Database Professionals的东西。后来进入Team Developer。

无论如何,他们通过在数据库中执行并测试结果来“编译”sql代码。我想如果他们验证它是如何工作的,那么它可能是你做的最佳方式。