【问题标题】:Create human readable SQL from Log files从日志文件创建人类可读的 SQL
【发布时间】:2011-10-21 14:31:31
【问题描述】:

我的日志文件包含以下格式的 SQL 语句:

exec sp_executeSQL @stmt=N'SELECT Field1, Field2, Field3 FROM MyTable WHERE Field1 = @P1 AND Field2 = @P2', @params=N'@P1 Numeric(15,3), @P2 varchar(20)', @P1='1234.54', @P2='Hello'

我想这样格式化:

SELECT Field1, Field2, Field3
FROM   MyTable
WHERE  Field1 = 1234.54
AND    Field2 = 'Hello'

手动解析消息(即剥离语句并将@P1、@P2 替换为相应的值是可能的,但您需要处理所有不同的类型)

我正在寻找与 GetCommandLogString mentioned here 相反的东西

【问题讨论】:

    标签: c# tsql parsing


    【解决方案1】:

    您可以使用General SQL Parser

    【讨论】:

      【解决方案2】:

      我最终使用了 Microsoft.Data.Schema.ScriptDom 中提供的 TSql100Parser。

      本质上,它会解析一个 SQL 查询,对于我的问题中的查询,返回一个分解为各个部分(语句、变量、变量值等)的“ExecuteStatement”。然后我对其进行操作,并使用 Sql100ScriptGenerator 将生成的 SQL 语句格式化为人类可读的内容。

      【讨论】:

        猜你喜欢
        • 2014-07-02
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        • 2019-10-27
        • 2016-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多