SQL Server 2008 R2-正在检索过程输入/输出参数


SQL Server 2008 R2 - Retrieving procedure input / output parameters

我正在用PHP开发一个与SQL Server 2008 R2连接的应用程序,我的要求是从过程中获取输入/输出参数(METADATA)列表,并在屏幕上生成运行时表单。我有大约50个场景,例如获取订单详细信息、获取待处理订单等。

因此,我决定在运行时生成这些表单,而不是开发这50个屏幕。现在,我在谷歌上搜索了一下我的问题,并通过使用sp_describe_first_result_set了解到SQL Server 2012中提供了此功能。参考:链接

SQL Server 2008中有实现这一目标的方法吗?

下一个查询从当前数据库返回存储过程及其参数的列表:

select pr.object_id [procedure_id]
, pr.name [procedure_name]
, p.parameter_id
, p.name [parameter_name]
, p.is_output
from sys.parameters p
join sys.procedures pr on p.object_id = pr.object_id
order by pr.object_id, p.parameter_id

您可以使用SET FMTONLY来执行存储的proc,这些proc具有只返回元数据的结果集。这只会向客户端返回元数据。可用于测试响应的格式,而无需实际运行查询。事实上,在MSDN中,它说不要使用它,因为它已经被sp_describe_first_result_set(2012年)取代了,所以就这样吧。

要获得有关存储过程的参数的元数据,最好使用

SELECT * FROM INFORMATION_SCHEMA.Parameters