2012-01-05 3 views
1

У меня есть хранимая процедура, которая генерирует список номеров последовательности продуктов.Можете ли вы установить параметры хранимых процедур из вывода запроса?

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

Теперь я должен сгенерировать список последовательностей для отчета. Есть ли способ передать эту хранимую процедуру из вывода запроса? Например, сгенерируйте список последовательностей для всех тостеров, ковшей и сковородок.

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

ответ

4

В петле, да. Один раз в строке и вы будете иметь несколько результирующих (повторяется один хранится выход прок на итерации цикла

Лучший способ использует APPLY и UDF, если вы можете повторно использовать записи UDF,

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') 

ОДС может быть вызваны в хранимой процедуре, конечно, для поддержания «API»

+0

+1: Если логика доступна только для чтения, инкапсуляция ее в функции, зависящей от таблицы, дает вам гораздо большую гибкость. – MatBailie

Смежные вопросы