【发布时间】:2009-04-20 20:55:52
【问题描述】:
我正在尝试在 C# 中以编程方式执行一些 SQL 查询验证(不调用实际数据库)。本质上,我希望用户能够输入视图、UDF 或 SP 并立即验证其依赖关系。用户会将这些输入到自定义工具中以定义数据库对象。
因此,如果用户输入:
CREATE VIEW someView AS SELECT name, address FROM users
我可以提取“用户”的依赖关系,然后检查存储在内存中的数据库对象集合(例如,表、视图等),以确保其中之一存在依赖关系。请记住,输入到我的自定义应用程序中的实际视图/UDF/SP 非常复杂,自己解析它们是不可取的。
我目前正在尝试使用 Microsoft.Data.Schema.ScriptDom.Sql.TSql100Parser 执行此操作。这提供了一个 parse 方法,它返回查询的 DOM 表示。然而,这是一个非常复杂的 DOM,我基本上不得不为它编写一个完整的解析器。
有什么想法/建议吗?谢谢!
【问题讨论】:
-
所以你只想拉取查询中使用的对象?