当我尝试使用SQL Server 2008中的Invoke-Sqlcmd cmdlet执行包含脚本变量的查询时,例如, $(MyVar)
,我收到以下异常:Invoke-Sqlcmd cmdlet在使用-Variable参数时抛出异常
Invoke-Sqlcmd:未将对象引用设置为对象的实例。
这是我试图运行的代码(这是从the Books Online example复制/粘贴,仅添加了连接参数)。
$MyArray = "MyVar1 = 'String1'", "MyVar2 = 'String2'"
Invoke-Sqlcmd -Query "SELECT `$(MyVar1) AS Var1, `$(MyVar2) AS Var2;" -Variable $MyArray -ServerInstance "localhost" -Database "master" -UserName "who" -Password "me"
如果我在-Query
与'x'
和'y'
更换$(MyVar1)
和$(MyVar2)
然后它完美地运行。
$MyArray = "MyVar1 = 'String1'", "MyVar2 = 'String2'"
Invoke-Sqlcmd -Query "SELECT 'x' AS Var1, 'y' AS Var2;" -Variable $MyArray -ServerInstance "localhost" -Database "master" -UserName "who" -Password "me"
谁能告诉我为什么这不起作用?
按照联机丛书例如,分配2个字符串数组正是需要做的,因为该cmdlet期待变量赋值的数组。 – joshuapoehls 2009-10-05 20:01:28