- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
好像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/
与我合作的开发人员团队正在使用 SQL 数据项目来处理我们必须针对现有数据库进行的大量工作。我们已经进行了数周,出现了一些问题,但整体体验还是不错的。 但是,当我们开始部署到生产环境时,dba 团队拒
我希望使用 ScriptDom 来解析 T-SQL 语句并确保至少指定了两列。我找到了一种提取列名的方法,并且可以从中正确地进行验证。但是,我还想验证该列是否具有别名,并且不确定如何检查。 我想确保
微软曝光了 scriptdom API解析和生成TSQL。我是新手,还在玩它。我想知道如何从这样的查询中获取跨数据库引用。 UPDATE t3 SET description = 'abc'
我正在使用 Microsoft.Data.Schema.ScriptDom 和 Microsoft.Data.Schema.ScriptDom.Sql 库来解析 SQL 并将“TOP #”添加到 SQ
好像ScriptDom具有复杂的架构。由于没有关于 ScriptDom 的文档,您知道如何使用 ScriptDom 类型生成这样的联合查询吗? SELECT c.Title as ColumnTitl
Microsoft.Data.Schema.ScriptDom 是否随 Visual Studio 2012 Ultimate 一起提供? 我正在尝试加载引用此程序集的 Visual Studio 2
我正在使用 Microsoft.SqlServer.TransactSql.ScriptDom 库。我找到了导航可以从 TSqlFragment 获取的所有 token 的方法: TSql100Par
这是我引用的 MS 文档:https://learn.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.transactsql.scriptdom?
这是我引用的 MS 文档:https://learn.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.transactsql.scriptdom?
我是一名优秀的程序员,十分优秀!