zhm.GetBatchCmdList_sp
2 つのオプションの入力パラメータ (@freq
および)を持つストアド プロシージャ ( ) があります@env
。ストアド プロシージャは、実行したい SSIS ファイルとストアド プロシージャの 1 列のリストを 1 つずつ返します。
ストアド プロシージャの結果セットをコンソールにエコーするだけのテスト コードをいくつか作成しました。
set freq=D
set env=DEV
set cmd=sqlcmd -S LDNDSM05243\TDS_MAIN2_DEV -d CPRM_3DSTRESS -Q "exec zhm.GetBatchCmdList_sp @freq=$(freq), @freq=$(env)" -h -1
set cmdList=
setlocal enabledelayedexpansion
for /f "usebackq" %%i in (`"%cmd%"`) do (set cmdList=!cmdList! %%i)
for %%v in (%cmdList%) do echo %%v
endlocal
しかし、私はそれに問題があります。
上記の「set cmd....」行から入力パラメーターを削除すると、次のように置き換えられます。
set cmd=sqlcmd -S LDNDSM05243\TDS_MAIN2_DEV -d CPRM_3DSTRESS -Q "exec zhm.GetBatchCmdList_sp" -h -1
その後、スクリプトが実行されます。ただし、実行時にとの異なる値を設定できるように、呼び出し元が入力変数 (つまり%1
と%2
) をスクリプトに渡して (これらをストアド プロシージャに渡す)ことができるようにしたいと考えています。 freq
env
何が間違っているのかわかりませんが、格納された proc 入力パラメーターと遅延展開の有効化の組み合わせに関係があるのではないかと思います。もちろん、私は間違っている可能性がありますが、グーグルで調べてみましたが、このコンボ/質問に固有のヘルプが見つかりません.
誰でも私を助けてもらえますか?