2012-01-05 14 views
1

商品シーケンス番号のリストを生成するストアドプロシージャがあります。クエリの出力からストアドプロシージャのパラメータを設定できますか?

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

レポートのシーケンスのリストを生成する必要があります。 クエリの出力からこのストアドプロシージャをフィードする方法はありますか? たとえば、すべてのトースター、台車、およびパンのシーケンスリストを生成します。

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

答えて

4

ループ内では、はいです。行ごとに一度、あなたは複数の結果を(1つのストアドプロシージャの出力は、ループごとに繰り返さなければならないと思い反復

最良の方法は、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') 

UDFができますを使用するためにあなたができる場合は、再書き込みAPPLYとUDFを使用しています

+0

+1:ロジックが読み取り専用の場合、それをテーブル値のユーザー定義関数にカプセル化すると、はるかに柔軟性が得られます。 – MatBailie

関連する問題