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

时间:2010-04-22 21:18:33

标签: c# sql-server-2005 stored-procedures parameters user-defined-functions

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

到目前为止,我已经发现了SQL系统函数 object_definition ,它接受一个给定的 sysobjects.id 并返回该对象的文本;也是通过搜索this post发现的,它描述了使用ADO.NET方法 DeriveParameters 结合一些缓存来提取应用程序上下文中的参数以获得更好的性能;并且为了更好的衡量,在Hidden Features of SQL Server上的早期帖子中发现了一些有用的系统存储过程。

我倾向于在我的C#应用​​程序中实现 DeriveParameters 方法,因为解析 object_definition 的输出似乎很乱,我还没有找到隐藏的功能到目前为止这个帖子可以解决问题。

DeriveParameters 是否适用于功能和存储过程,以便检索其参数,如果是,有人可以提供一个示例吗?

1 个答案:

答案 0 :(得分:2)

请试试这个:

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