C# 使用C语言的SQL格式化程序#
我需要在C#中创建一个SQL格式化程序。有人能给我指一下网上的资源吗?我是否需要实现一个完整的解析器,或者有更简单的方法来实现它?看看 也看看C# 使用C语言的SQL格式化程序#,c#,sql,parsing,C#,Sql,Parsing,我需要在C#中创建一个SQL格式化程序。有人能给我指一下网上的资源吗?我是否需要实现一个完整的解析器,或者有更简单的方法来实现它?看看 也看看 当我在紧要关头,需要使某些东西至少看起来“格式化”时,我会跳到 嗯,另一个我稍后会遇到的问题,但如果这对其他人有用,我已经实现了一个开源(AGPL)T-SQL格式化程序: 我的方法肯定不涉及完整的SQL解析(T-SQL是一种非常复杂的语言,我不认为自己有机会开发和维护一个完整的解析器),而是通过关键字标记并识别SQL中的主要结构。结果是一个包含所有格式
当我在紧要关头,需要使某些东西至少看起来“格式化”时,我会跳到
嗯,另一个我稍后会遇到的问题,但如果这对其他人有用,我已经实现了一个开源(AGPL)T-SQL格式化程序: 我的方法肯定不涉及完整的SQL解析(T-SQL是一种非常复杂的语言,我不认为自己有机会开发和维护一个完整的解析器),而是通过关键字标记并识别SQL中的主要结构。结果是一个包含所有格式相关部分的部分解析树 正如@astander链接到的问题的答案中所指出的,对于全面的SQL解析,有很多商业选项,也有很多解析器构建器——但没有我所知道的完整的开源T-SQL解析器
为简单的选择、更新和删除创建一个解析器是很简单的——处理派生表和子查询变得有点困难;然后是输出子句、合并语句、多语句脚本、CTE、T-SQL包含的几十个DDL语句等等:它变得很混乱。还有SQLinForm SQL美化器,它在www.SQLinForm.com上有一个C#API有更简单的方法吗?我不能在没有解析的情况下格式化它吗?这个库对我来说工作得非常好,现在也有一个为它打包的Nuget:我去了git hub,下载了master并使用了winform应用程序。请注意,它是在AGPL下授权的,所以如果你使用它,你必须开放自己的代码。