我正在使用 Massive 创建一个通用的存储过程执行器。基本上,我有一个函数,它采用过程名称和可变数量的参数。然后,我盲目地尝试使用传递的参数执行该存储过程并返回结果或处理错误。
我的问题是:有没有办法让我在调用存储过程之前确定存储过程需要哪些参数?
我正在使用 Massive 创建一个通用的存储过程执行器。基本上,我有一个函数,它采用过程名称和可变数量的参数。然后,我盲目地尝试使用传递的参数执行该存储过程并返回结果或处理错误。
我的问题是:有没有办法让我在调用存储过程之前确定存储过程需要哪些参数?
尝试这个:
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 文档了解所有详细信息!