3

さまざまなパラメーターを使用して複数回実行する必要がある SQL ストアド プロシージャがあります。配列や異なるパラメータの他のデータ構造のように複数回実行されるある種の SQL スクリプトを実行することは可能ですか? これについて何か考えはありますか?

4

2 に答える 2

5

カーソルを使用できます(ただし、コードを再構築できる場合は、YSの回答を試してください):

編集: @YS の提案に従って FAST_FORWARD を追加

DECLARE @param INT

-- getting your parameter from the table
DECLARE curs CURSOR LOCAL FAST_FORWARD FOR
    SELECT afield FROM atable WHERE ...

OPEN curs

FETCH NEXT FROM curs INTO @param

-- executing your stored procedure once for every value of your parameter     
WHILE @@FETCH_STATUS = 0 BEGIN
    EXEC usp_stored_Procedure @param
    FETCH NEXT FROM curs INTO @param
END

CLOSE curs
DEALLOCATE curs
于 2012-03-05T20:25:57.590 に答える
5

必要に応じて(カーソルを回避するために)デザインを少し再構築する可能性があります-つまり:

  • ストアド プロシージャで実行される値を一時テーブルに挿入し、ストアド プロシージャを呼び出します (ストアド プロシージャは一時テーブルを読み取ります)。

  • テーブル値パラメーターを使用してストアド プロシージャを呼び出す

于 2012-03-05T20:32:04.073 に答える