2011-10-21 11 views
1

から人間が読めるSQLを作成します。は、私は次の形式で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を対応する値で置き換えることは可能ですが、すべての異なる型に対処する必要があります)

私は何かを探していますe逆のGetCommandLogString mentioned here

答えて

0

Microsoft.Data.Schema.ScriptDomで利用可能なTSql100Parserを使用してしまいました。

本質的に、それはSQLクエリを解析し、私の質問では、 'ExecuteStatement'をさまざまな部分(ステートメント、変数、変数値など)に分解して返します。私はこれを操作し、Sql100ScriptGeneratorを使用して結果のSQL文を人間が読める形式にフォーマットします。

関連する問題