ストアドプロシージャを呼び出して、Powershellから引数を渡す必要があります。 sqlcmd.exeを使用するのが最善のオプションだと思いますが、このツールを使用してストアドプロシージャに引数を渡す方法がわかりません。
sqlcmd.exeは、_/v
_引数を介した変数置換とパラメーターをサポートします。 スクリプト変数でのsqlcmdの使用 を参照してください。例えば:
_sqlcmd -E -d <mydb> -Q "exec usp_myproc @variable=$(myparam)" /v myparam=1
_
変数$(myparam)
の代わりに値1をスクリプトに渡すプロシージャを呼び出します。 sqlcmd変数置換は、バッチ(要求)がSQL Serverに送信される前に、sqlcmdで発生する$(variable)
の文字列置換であることに注意してください。
Invoke-Sqlcmd コマンドレットを使用すると、Windows PowerShell環境でsqlcmdスクリプトファイルを実行できます。 sqlcmdで実行できることの多くは、 Invoke-Sqlcmd を使用して実行することもできます。
例:
$myparam = "..." Invoke-Sqlcmd -Query "EXEC sp_myproc $myparam" -ServerInstance "MyComputer\MyInstance"