SQL Server 2008 R2 - 检索程序输入/输出参数
问题描述:
我正在开发一个与SQL Server 2008 R2连接的PHP应用程序,我的要求是从程序中获取输入/输出参数(元数据)列表并生成运行时间屏幕上的形式。我有五十个场景,例如获取订单详情,获得挂单等。SQL Server 2008 R2 - 检索程序输入/输出参数
因此,我决定在运行时生成这些表单,而不是开发这些50个屏幕。现在我搜索了一下我的问题,并且我开始通过使用sp_describe_first_result_set来了解SQL Server 2012中的这个特性。参考:link
有没有办法在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来执行存储过程,其结果集只有元数据被返回。这只会将元数据返回给客户端。可以用来测试响应的格式而不需要实际运行查询。实际上,在MSDN中,它说不使用它,因为它已被替换为sp_describe_first_result_set(2012年),所以你去了。
要获得有关参数传递到存储过程的元数据,最好的办法是使用
SELECT * FROM INFORMATION_SCHEMA.Parameters
非常感谢安德烈,我解决了一个大问题 – jawadxiv 2014-11-03 15:41:02
很高兴听到@jawadxiv - 不客气 – 2014-11-03 15:49:51