10

私は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ですか?

4

4 に答える 4