使用C#的SQL Formatter

时间:2009-12-22 06:28:19

标签: c# sql parsing

我需要在C#中创建一个SQL格式化程序。谁能指点我网上的一些资源?我是否需要实现一个成熟的解析器,或者有更简单的方法吗?

4 个答案:

答案 0 :(得分:5)

答案 1 :(得分:4)

嗯,我之后遇到很多的另一个问题,但是如果这对其他任何人都有用,我已经实现了一个开源(AGPL)T-SQL格式化程序:http://www.architectshack.com/PoorMansTSqlFormatter.ashx

我的方法绝对不涉及完整的SQL解析(T-SQL是一种非常复杂的语言,我不会评价我自己开发和维护完整解析器的机会),而是标记化然后识别主要结构。 SQL,按关键字。结果是部分解析树,其中所有格式相关的部分都已分解。

正如@astander链接到的问题的答案中所提到的,有全面的SQL解析的商业选项,以及许多解析器构建器 - 但没有比我所知的完整的开源T-SQL解析器。

为简单的选择,更新,删除创建解析器非常简单 - 处理派生表和子查询会变得更难一些;然后是OUTPUT子句,MERGE语句,多语句脚本,CTE,T-SQL包含的许多DDL语句等等:它变得混乱。

答案 2 :(得分:3)

当我处于紧张状态并需要制作至少看起来“格式化”的东西时,我跳转到

http://www.dpriver.com/pp/sqlformat.htm

答案 3 :(得分:1)

还有一个SQLinForm SQL美化器,它在www.sqlinform.com上有一个C#API