如何在从 powershell 脚本传入的 SQL 脚本中使用变量
How do I use a variable in an SQL script passed in from a powershell script
我是 Powershell 的新手,对某些语法感到困惑。我有一个 powershell 脚本,它调用一个 SQL 脚本,其中包含一个我想在脚本中访问的变量。
param (
[string] $inst = "all"
)
invoke-sqlcmd -inputfile "D:\PowershellScripts\testSQL\testScript.sql" -variable $powerShellVar=$inst -serverinstance '.\sql2008';
在我的 SQL 查询中,我希望能够像这样访问 $powerShellVar 变量
print $powerShellVar
但是,当我这样做时,出现了这个错误
Invoke-Sqlcmd : Invalid pseudocolumn "$powerShellVar"
我做错了什么?
参数语法无效。难怪,因为这没有很好的记录。 -variable
参数假定一个包含 name/value 对的数组,如下所示,
$sqlParameters = @("variable1 = 'value1'", "variable2 = 'value2'")
对于单个参数,
$sqlParameters = @("variable1 = 'value1'")
通过这种语法,假设 printarg.sql 包含 select $(powerShellVar)
,这应该有效:
$sqlParameters = @("powerShellVar = 'foobar'")
invoke-sqlcmd -ServerInstance computer\instance -inputfile "c:\temp\printarg.sql" -variable $sqlParameters
我是 Powershell 的新手,对某些语法感到困惑。我有一个 powershell 脚本,它调用一个 SQL 脚本,其中包含一个我想在脚本中访问的变量。
param (
[string] $inst = "all"
)
invoke-sqlcmd -inputfile "D:\PowershellScripts\testSQL\testScript.sql" -variable $powerShellVar=$inst -serverinstance '.\sql2008';
在我的 SQL 查询中,我希望能够像这样访问 $powerShellVar 变量
print $powerShellVar
但是,当我这样做时,出现了这个错误
Invoke-Sqlcmd : Invalid pseudocolumn "$powerShellVar"
我做错了什么?
参数语法无效。难怪,因为这没有很好的记录。 -variable
参数假定一个包含 name/value 对的数组,如下所示,
$sqlParameters = @("variable1 = 'value1'", "variable2 = 'value2'")
对于单个参数,
$sqlParameters = @("variable1 = 'value1'")
通过这种语法,假设 printarg.sql 包含 select $(powerShellVar)
,这应该有效:
$sqlParameters = @("powerShellVar = 'foobar'")
invoke-sqlcmd -ServerInstance computer\instance -inputfile "c:\temp\printarg.sql" -variable $sqlParameters