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

我可以根据各种表的名称以及用户定义的功能所采用和返回的参数来弄清楚一些事情,但是我仍然在其他每一回合都会遇到错误。

我认为,如果我可以看到存储的功能对返回输出的参数所做的事情真的很有帮助。目前,我所能弄清楚的是如何查询输入参数和输出列。

是否有内置的 information_schema 表可以公开输入和输出之间的功能?

有帮助吗?

解决方案

如果您可以以某种方式针对数据库执行查询,并且如果您有必要的权限读取系统目录视图,则可以运行此查询以获取名称,定义(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')

其他提示

只要您拥有适当的权限,您就可以简单地脚本拼写所有存储的过程和功能:

右键单击SSMS(SQL Server Management Studio)中的数据库,选择任务 - >生成脚本,确保您的数据库突出显示,然后单击下一步。确保选择存储过程和功能的选项。

您可以安装SSM(客户端工具),而无需SQL Server许可证。

另一种方法是 sp_helptext 这将向您显示传递的SP或UDF的来源;

sp_helptext fnBlaDeBla

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top