我有一个有趣的场景,我需要从存储过程中获取动态的参数值列表。我想要一个通用的t-sql脚本,它会将这些信息返回给我,而不必输入每个参数名称。
原因是在执行多个存储过程之前,我必须首先将参数值列表传递给另一个存储过程调用。我不想要繁琐的维护任务,无论何时在SP中添加/更改参数,我都必须更改嵌套调用。
例如:
create procedure sp1 @a int = 1, @b int = 2
as begin
exec sp2 '1, 2'
....
end
添加另一个参数@c int
,应自动添加到传递给sp2的字符串中。
我知道我可以使用sys.parameters
从object_id = @@procid
检索参数名称。我可以使用for xml path
连接它们。但是,我需要使用sp_executesql
来检索值 - 这需要我指定每个参数名称。因此,我并没有比以前更好。
非常感谢任何提示或帮助。
谢谢。