gpt4 book ai didi

c# - 如何使用 Microsoft.SqlServer.Management.SqlParser 中的类将 T-SQL 解析为 AST

转载 作者:太空狗 更新时间:2023-10-29 23:13:37 31 4
gpt4 key购买 nike

Parser 类只有返回 ParseResult 的方法 Parse,看来我对 ParseResult< 无能为力/强>。我怎样才能得到我的 sql 语句的抽象语法树,或者只是可以从 sql 中解析元数据标记就可以了。

最佳答案

我做了一些研究,发现我可以使用反射生成使用SqlScript.WriteXml 的解析信息xml 文件。下面是示例代码,不知道有没有更好的方法。

var rst = Parser.Parse(File.ReadAllText(@"*.sql"));
var fieldInfo = rst.GetType().GetField("sqlScript", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField);
var script = fieldInfo.GetValue(rst);
var writer = XmlWriter.Create("*.xml");
script.GetType().InvokeMember("WriteXml", BindingFlags.NonPublic| BindingFlags.Instance | BindingFlags.InvokeMethod
, null, script, new object[] { writer });
writer.Close();

关于c# - 如何使用 Microsoft.SqlServer.Management.SqlParser 中的类将 T-SQL 解析为 AST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34102835/

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