gpt4 book ai didi

c# - 使用 Microsoft.SqlServer.TransactSql.ScriptDom 生成查询

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:15 25 4
gpt4 key购买 nike

好像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 语句。我检查了this blog post但是为对象图生成的 xml 非常复杂!

最佳答案

找出您需要添加的内容的最简单方法是执行相反的操作 - 从您的 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

我没有您的用例的确切示例。

关于c# - 使用 Microsoft.SqlServer.TransactSql.ScriptDom 生成查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com