2014-11-03 38 views
1

我正在开发一个与SQL Server 2008 R2连接的PHP应用程序,我的要求是从程序中获取输入/输出参数(元数据)列表并生成运行时间屏幕上的形式。我有五十个场景,例如获取订单详情,获得挂单等。SQL Server 2008 R2 - 检索程序输入/输出参数

因此,我决定在运行时生成这些表单,而不是开发这些50个屏幕。现在我搜索了一下我的问题,并且我开始通过使用sp_describe_first_result_set来了解SQL Server 2012中的这个特性。参考:link

有没有办法在SQL Server 2008中实现这一点?

回答

2

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

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 
+0

非常感谢安德烈,我解决了一个大问题 – jawadxiv 2014-11-03 15:41:02

+0

很高兴听到@jawadxiv - 不客气 – 2014-11-03 15:49:51

1

您可以使用SET FMTONLY来执行存储过程,其结果集只有元数据被返回。这只会将元数据返回给客户端。可以用来测试响应的格式而不需要实际运行查询。实际上,在MSDN中,它说不使用它,因为它已被替换为sp_describe_first_result_set(2012年),所以你去了。

要获得有关参数传递到存储过程的元数据,最好的办法是使用

SELECT * FROM INFORMATION_SCHEMA.Parameters