我有一个存储过程,用于生成产品序列号列表。
exec GenerateSequenceList @Min = 10, @Max = 25, @Prefix = N'Toaster'
我现在必须为报告生成序列列表。 有没有办法可以从查询的输出中提供这个存储过程? 例如,为所有烤面包机,钢包和平底锅生成序列列表。
select min, max, prefix from products where prefix in ('Toaster', 'Ladle', 'Pan')
答案 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”