Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C语言的SQL格式化程序#_C#_Sql_Parsing - Fatal编程技术网

C# 使用C语言的SQL格式化程序#

C# 使用C语言的SQL格式化程序#,c#,sql,parsing,C#,Sql,Parsing,我需要在C#中创建一个SQL格式化程序。有人能给我指一下网上的资源吗?我是否需要实现一个完整的解析器,或者有更简单的方法来实现它?看看 也看看 当我在紧要关头,需要使某些东西至少看起来“格式化”时,我会跳到 嗯,另一个我稍后会遇到的问题,但如果这对其他人有用,我已经实现了一个开源(AGPL)T-SQL格式化程序: 我的方法肯定不涉及完整的SQL解析(T-SQL是一种非常复杂的语言,我不认为自己有机会开发和维护一个完整的解析器),而是通过关键字标记并识别SQL中的主要结构。结果是一个包含所有格式

我需要在C#中创建一个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下授权的,所以如果你使用它,你必须开放自己的代码。