【问题标题】:Getting Stored Procedure Information from .Net从 .Net 获取存储过程信息
【发布时间】:2010-04-07 12:01:33
【问题描述】:

我正在尝试使用 .Net 从数据库中获取一些与存储过程(或函数)相关的数据。 我需要做的第一件事是从数据库中获取存储的过程并将其转换为字符串格式。 我需要的信息是:返回的列集、SP 中使用的表、从 SP 调用的存储过程。目前我能想到的唯一方法是解析文本并查找关键字匹配。有更好的方法吗?

有什么想法吗?

【问题讨论】:

    标签: c# .net sql vb.net


    【解决方案1】:

    假设您知道返回的表可能取决于函数的输入,因此给定的存储过程不会总是有一个输出,但是...

    要获取存储过程的列表,您可以调用sp_help。然后,您可以使用sp_helptext@objname 是存储过程的名称)获取存储过程的来源。

    要查找引用的表、列等,您可能需要解析 SQL 脚本 - 您可以自己执行此操作,或者有更多已建立的项目(例如 ANTLR)可以为您简化问题。

    【讨论】:

    • 谢谢@Rowland,sp_heltext 看起来很有帮助。
    【解决方案2】:

    将 SPROC 作为文本后,您可以使用 SQL 解析器。

    .NET 有几个 - 请参阅this SO 问题的答案(Parsing SQL in .NET)。

    【讨论】:

      【解决方案3】:

      如果你使用的是 SQL Server,你也可以试试 sp_depends 存储过程

      EXEC sp_depends @objname = N'sproc_name' ;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        • 1970-01-01
        • 2012-12-07
        • 2013-12-05
        • 1970-01-01
        • 2016-03-23
        • 2010-10-01
        相关资源
        最近更新 更多