【发布时间】:2010-09-08 13:44:21
【问题描述】:
我在单独的文本文件中有 150 多个 SQL 查询,我需要分析这些查询(只是实际的 SQL 代码,而不是数据结果),以便识别所有使用的列名和表名。最好是每列和表格出现的次数。使用嵌套的 SELECT 语句等编写一个全新的 SQL 解析程序比看起来要复杂得多。
必须有一个程序或代码可以做到这一点(或类似的东西),但我还没有找到它。
【问题讨论】:
我在单独的文本文件中有 150 多个 SQL 查询,我需要分析这些查询(只是实际的 SQL 代码,而不是数据结果),以便识别所有使用的列名和表名。最好是每列和表格出现的次数。使用嵌套的 SELECT 语句等编写一个全新的 SQL 解析程序比看起来要复杂得多。
必须有一个程序或代码可以做到这一点(或类似的东西),但我还没有找到它。
【问题讨论】:
我实际上最终使用了一个名为 SQL Pretty Printer。您可以购买桌面版,但我只是使用了免费的在线应用程序。只需将查询复制到文本框中,将输出设置为“列出数据库对象”,然后单击格式化 SQL 按钮。
它使用大约 150 个不同(和复杂)的 SQL 查询非常有效。
【讨论】:
如何在 MS SQLServer 中使用执行计划报告?您可以将其保存到一个 xml 文件中,然后可以对其进行解析。
【讨论】:
【讨论】:
如果您的应用程序需要这样做,并且可以访问包含表等的数据库,您可以运行以下命令:
SELECT TOP 0 * FROM MY_TABLE
使用 ADO.NET。这将为您提供一个 DataTable 实例,您可以查询其列及其属性。
【讨论】:
请使用 antlr... 编写语法 n 按照步骤..在 antlr 站点中给出..最终您将获得 AST(抽象语法树)。对于给定的查询...我们可以遍历它并带来查询中存在的所有表、列..
【讨论】:
在 DB2 中,您可以在查询中附加如下内容,但 1 是您可以指定的最小值;如果您尝试指定 0,它将引发错误:
FETCH FIRST 1 ROW ONLY
【讨论】: