私はpowershellを使用しており、Invoke-SqlCmd
. 変数を SQL に渡すことができます。
$variables = @( "MyVariable='hello'" )
Invoke-SqlCmd `
-ServerInstance 'localhost' `
-Database 'master' `
-Username 'matthew' `
-Password 'qwerty' `
-Query 'SELECT $(MyVariable) AS foo' `
-Variable $variables
これによりhello
、期待どおりに返されます。ただし、等号 ( ) を含む値を持つ変数がある場合=
:
$variables = @("MyVariable='aGVsbG8NCg=='") # base64 encoded 'hello'
次のエラーが表示されます。
コマンドレットの新しい変数を定義するために使用される形式
Invoke-Sqlcmd
が無効です。新しい変数を定義するには、「var=value」形式を使用してください。
sqlcmd
どちらか、またはInvoke-SqlCmd
値を適切にエスケープする方法についてのドキュメントが見つかりませんでした。
sqlcmd
/に送信された変数をエスケープするにはどうすればよいInvoke-SqlCmd
ですか?