对于给定的SQL存储过程或函数,我试图在我正在创建的Winforms应用程序中获取其输入和输出参数,以浏览对象并显示其参数和其他属性。
到目前为止,我已经发现了SQL系统函数 object_definition ,它接受一个给定的 sysobjects.id 并返回该对象的文本;也是通过搜索this post发现的,它描述了使用ADO.NET方法 DeriveParameters 结合一些缓存来提取应用程序上下文中的参数以获得更好的性能;并且为了更好的衡量,在Hidden Features of SQL Server上的早期帖子中发现了一些有用的系统存储过程。
我倾向于在我的C#应用程序中实现 DeriveParameters 方法,因为解析 object_definition 的输出似乎很乱,我还没有找到隐藏的功能到目前为止这个帖子可以解决问题。
DeriveParameters 是否适用于功能和存储过程,以便检索其参数,如果是,有人可以提供一个示例吗?
答案 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