代码之家  ›  专栏  ›  技术社区  ›  Anthony

查询以返回有关SQL Server数据库中存储函数的内部详细信息

  •  1
  • Anthony  · 技术社区  · 15 年前

    我有权访问第三方应用程序当前使用的SQL Server数据库。因此,我没有任何关于应用程序如何存储数据或如何检索数据的文档。

    我可以根据各种表的名称和用户定义函数接受并返回的参数来计算出一些事情,但是每隔一圈我仍然会得到错误。

    我在想,如果我能看到存储的函数对返回输出的参数做了什么,那将非常有用。现在我只知道如何查询输入参数和输出列。

    有内置的吗 information_schema 将公开函数在输入和输出之间所做操作的表?

    3 回复  |  直到 15 年前
        1
  •  2
  •   marc_s    15 年前

    如果您可以以某种方式对数据库执行查询,并且如果您具有读取系统目录视图所需的权限,则可以运行此查询以获取名称、定义(SQL代码)和有关函数的更多信息:

    SELECT 
        obj.name ,
        obj.type ,
        obj.type_desc ,
        obj.create_date ,
        obj.modify_date ,
        m.definition ,
        m.is_schema_bound 
    FROM 
        sys.objects obj
    INNER JOIN 
        sys.sql_modules m ON obj.object_id = m.object_id
    WHERE 
        obj.type IN ('AF', 'FN', 'FS', 'FT', 'IF', 'TF')
    
        2
  •  0
  •   Mitch Wheat    15 年前

    如果您具有适当的权限,则可以简单地编写所有存储过程和函数的脚本:

    右键单击SSMS(SQL Server Management Studio)中的数据库,选择“任务”>“生成脚本”,确保突出显示数据库,然后单击“下一步”。确保选择了用于编写存储过程和函数脚本的选项。

    您可以在不需要SQL Server许可证的情况下安装SSMS(客户端工具)。

        3
  •  0
  •   Alex K.    15 年前

    另一种方法是 sp_helptext 它将向您显示通过的sp或udf的来源;

    sp_helptext fnBlaDeBla