如何确定存储过程是否需要参数?

时间:2012-11-13 17:25:35

标签: c# .net sql-server massive

  

可能重复:
  How can I retrieve a list of parameters from a stored procedure in SQL Server

我正在使用Massive来创建通用存储过程执行程序。基本上,我有一个函数,它采用过程的名称和可变数量的参数。然后,我盲目地尝试使用传递的参数执行该存储过程,并返回结果或处理错误。

我的问题是:在调用之前,我有办法确定存储过程所期望的参数吗?

1 个答案:

答案 0 :(得分:5)

试试这个:

SELECT 
    ProcedureName = pr.Name,
    ParameterName = p.Name,
    Typename = ty.name 
FROM 
    sys.parameters p
INNER JOIN 
    sys.procedures pr ON p.object_id = pr.object_id
INNER JOIN 
    sys.types ty ON p.user_type_id = ty.user_type_id
WHERE   
    pr.Name = '.....'   -- put your stored procedure name here
ORDER BY 
    p.Name, p.parameter_id

这将检查系统目录视图,并显示给定过程的参数及其类型。

系统目录视图包含其他信息(例如参数是否具有默认值,如果是,它是什么;它是否是XML参数等等) - 请查看MSDN documentation for all details