您可以从查询的输出中设置存储过程参数吗?

时间:2012-01-05 11:29:48

标签: sql sql-server-2008 stored-procedures

我有一个存储过程,用于生成产品序列号列表。

exec GenerateSequenceList @Min = 10, @Max = 25, @Prefix = N'Toaster'

我现在必须为报告生成序列列表。 有没有办法可以从查询的输出中提供这个存储过程? 例如,为所有烤面包机,钢包和平底锅生成序列列表。

select min, max, prefix from products where prefix in ('Toaster', 'Ladle', 'Pan')

1 个答案:

答案 0 :(得分:4)

在一个循环中,是的。每行一次,你有多个结果集(每个循环迭代重复一次存储过程输出

如果可以重写以使用UDF,最好的方法是使用APPLY和udfs

select P.prefix , T.* 
from 
   products P
   CROSS APPLY -- or OUTER APPLY maybe
   dbo.SomeUDF (P.min, P.max, P.prefix) T
where 
   P.prefix in ('Toaster', 'Ladle', 'Pan')

当然可以在存储过程中调用udf来维护“API”