我已获得访问第三方应用程序当前使用的 SQL Server 数据库的权限。因此,我没有任何关于该应用程序如何存储数据或如何检索数据的文档。
我可以根据各种表的名称以及用户定义的函数采用和返回的参数来弄清楚一些事情,但每隔一段时间我仍然会遇到错误。
我在想,如果我能看到存储的函数对返回输出的参数做了什么,那将是非常有帮助的。现在我能弄清楚的是如何查询输入参数和输出列。
是否有任何内置information_schema
表可以公开函数在输入和输出之间的作用?
我已获得访问第三方应用程序当前使用的 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) 中右键单击您的数据库,选择 Tasks –> Generate Scripts,确保您的数据库突出显示,然后单击下一步。确保选择脚本输出存储过程和函数的选项。
无需 SQL Server 许可证即可安装 SSMS(客户端工具)。
另一种方法是sp_helptext
向您显示传递的 SP 或 UDF 的来源;
sp_helptext fnBlaDeBla