私は、異なるパラメータで何度も実行する必要があるSQLストアドプロシージャを持っています。異なるパラメータの配列や他のデータ構造のように何度も実行されるある種のSQLスクリプトを実行することは可能ですか?これについての考えは?SQLクエリを異なるパラメータで複数回実行する
答えて
カーソルを使用します(しかし、それはあなたのコードを再構築することが可能です場合、YS's answerを試してみてください)することができます
EDITは:@ YSの提案
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
カーソルが読み取り専用で、前方に移動している場合は、パフォーマンスを向上させるために 'FAST_FORWARD'を使用することを検討してください。つまり: 'DECLARE curs CURSOR LOCAL FAST_FORWARD FOR ...' –
@YS:そうです。提案していただきありがとうございます! –
これは実際にはかなりうまく動作します。私は私のT-SQLで作業する必要があります – SoftwareSavant
私は思いますおそらく再編につきとしてFAST_FORWARDを追加しました
挿入する値をsで実行する必要があります(カーソルを回避するには) tored procの一時テーブルへ、そして呼び出すストアドプロシージャ(ストアドプロシージャは、その後、一時テーブルを読み込みます)
コールはパラメータから来るのか、テーブル値パラメーター
- 1. 同じパラメータ化されたSQLクエリを異なるパラメータ値で複数回実行する
- 2. 異なる入力パラメータでFortranを複数回実行する
- 3. 同じメソッドを複数の異なるパラメータで複数回実行するC#
- 4. Excel VBA - 異なる変数値でSQLスクリプトを複数回実行する
- 5. forループの異なるパラメータでFuncAnimationを複数回実行する
- 6. 異なるパラメータで同じJunitテストを複数回実行する
- 7. 一度に異なるパラメータでマクロを複数回実行します
- 8. JS単位テストは、異なるパラメータで複数回実行されます
- 9. Python - 異なるデータで複数回スクリプトを実行する
- 10. Excelスプレッドシートのsqlクエリでパラメータを複数回使用する
- 11. 異なる場所からFirefoxを複数回実行する
- 12. 異なる引数で複数回Python関数を実行する
- 13. 複数のパラメータを使用してSQLクエリを実行
- 14. 異なるコマンドで複数回sqlコマンドを使用する
- 15. 異なるパラメータで類似のクエリを実行します。
- 16. NEO4Jのパフォーマンスを複数回実行クエリ
- 17. PHPでSQLの複数行のクエリを実行するには?
- 18. 異なる日付形式でSQLクエリを実行する
- 19. 同じWorklfowを異なるパラメータで複数回起動
- 20. PostgreSQLで複数回クエリを実行する方法
- 21. クエリ内で関数を複数回実行しないようにする
- 22. 複数行のJDBC SQL実行クエリ
- 23. jUnitランナーが異なるパラメーターでテストクラスを複数回実行する
- 24. Pytest:異なる入力データで複数回テストを実行する
- 25. 異なる引数に対してターミナルコマンドを複数回実行する
- 26. SQL Serverでalter table alter columnステートメントを複数回実行する
- 27. SQL ServerのDATEDIFF関数 - 異なるケースで異なる実行
- 28. 時変パラメータを変化させて複数回実行する。
- 29. ElasticSearchは、1回のリクエストで異なるクエリ条件で複数の集計を実行できますか?
- 30. ブーストテストライブラリ異なる "パラメータ"を持つスイートを2回実行
を使用してprocのを保存しますか? DBテーブル? –
テーブル内の特定の列。 – SoftwareSavant
テーブル内の列の値をループし、ストアドプロシージャ呼び出しのパラメータとして使用できます。しかし、それは遅くなる可能性があります。場合によっては、ストアドプロシージャを非手続き型SQLとして書き換えるほうがよい場合もあります(可能であれば)。もちろん、コードを表示していないので、あなたのケースで何が最善であるかを言うことは不可能です。 –