2

ScriptDom複雑なアーキテクチャを持っているようです。ScriptDom に関するドキュメントがないため、ScriptDom 型を使用してこのような結合クエリを生成する方法を知っていますか?

SELECT c.Title as ColumnTitle, t.Title as TableTitle, o.Title as OwnerTitle FROM info.iColumns c 
    JOIN info.iTables t ON c.TableRef = t.Id 
    JOIN info.iOwners o ON t.OwnerRef = o.Id 
    JOIN info.iTablesKey k ON k.TableRef = t.Id
    WHERE t.DisplayIndex = 1

レポート ビルダー用の簡単なクエリ ジェネレーターを作成したいのですが、JOINステートメントの作成方法がわかりません。このブログ投稿を確認しましたが、生成されたオブジェクト グラフの xml は非常に複雑です。

4

1 に答える 1

1

何を追加する必要があるかを判断する最も簡単な方法は、逆の手順を実行することです。t-sql から開始し、パーサーを使用してそれを解析し、TSqlScript を作成してから、TSqlFragmentVisitor を実装するクラスに渡します。

TSqlFragmentVisitor を実装するクラスで、Visit(TSqlScript ノード) をオーバーライドします。そこにブレークポイントを配置すると、クエリを構成するオブジェクトを調べることができます。

ScriptDom を使用して AST を構築するのは非常に困難ですが、最終的にはやりがいがあります :)

たとえば、scriptdom の使用方法については、次の scriptdom セクションを参照してください。

https://the.agilesql.club/Blogs/Ed-Elliott/DacFx-Create-tSQLt-Tests-From-A-Dacpac

あなたのユースケースの正確な例はありません。

于 2015-11-03T08:35:22.193 に答える