检索SQL存储过程和函数的输入和输出参数?

问题描述:

对于给定的SQL存储过程或函数,我试图在我创建的用于浏览对象并显示其参数和其他属性的Winforms应用程序中获取其输入和输出参数。检索SQL存储过程和函数的输入和输出参数?

到目前为止,我已经发现了SQL系统功能OBJECT_DEFINITION,这需要一个给定的sysobjects.id并返回该对象的文本;也通过搜索this post发现,其中描述了使用ADO.NET方法在应用上下文中提取参数DeriveParameters与某些缓存结合使用以获得更好的性能;并在Hidden Features of SQL Server上发现了一些有用的系统存储过程。

我倾向于实施DeriveParameters方法在我的C#应用​​程序,因为解析的OBJECT_DEFINITION输出显得凌乱,而我还没有发现在该职位的隐藏功能,到目前为止,会做的伎俩。

导出参数适用于函数和存储过程以便检索参数,如果有的话,有人可以提供一个例子吗?

请试试这个:

select 
PARAMETER_NAME, 
DATA_TYPE, 
CHARACTER_MAXIMUM_LENGTH, 
PARAMETER_MODE, 
NUMERIC_PRECISION, 
NUMERIC_SCALE 
from INFORMATION_SCHEMA.PARAMETERS 
where specific_name = @chvProcName 
order by ordinal_position 

找PARAMETER_MODE它会得到这个信息OUT

的值从here

HTH

+0

谢谢,这肯定是有帮助的;如果我在.NET中没有看到任何特定于DeriveParameters方法的响应,我会给你答案。 – 2010-04-23 18:35:28