有没有一种方法可以解析SQL查询以提取列名和表名?
时间:2020-03-05 18:51:29 来源:igfitidea点击:
我在单独的文本文件中有150多个SQL查询,我需要对其进行分析(仅是实际的SQL代码,而不是数据结果),以便识别所有使用的列名和表名。最好以每列和表格出现的次数为准。使用嵌套的SELECT语句等,编写一个全新的SQL解析程序比看起来要复杂。
必须有一个程序或者执行此操作的代码(或者接近此操作的代码),但我没有找到它。
解决方案
回答
我们可能想要寻找这样的东西:
的JSqlParser
它使用JavaCC解析并返回查询字符串作为对象图。我从未使用过它,所以我不能保证它的质量。
回答
如何在MS SQLServer中使用执行计划报告?我们可以将其保存到一个xml文件中,然后可以对其进行解析。
回答
如果应用程序需要执行此操作,并且有权访问具有表等的数据库,则可以运行以下命令:
SELECT TOP 0 * FROM MY_TABLE
使用ADO.NET。这将为我们提供一个DataTable实例,我们可以为其查询列及其属性。
回答
我实际上最终使用了一个名为
SQL漂亮打印机。我们可以购买桌面版本,但我只是使用免费的在线应用程序。只需将查询复制到文本框中,将"输出"设置为"列表数据库对象",然后单击"格式化SQL"按钮。
使用大约150个不同(和复杂)的SQL查询,它可以很好地工作。