当我尝试使用来自SQL Server 2008的Invoke-Sqlcmd cmdlet执行包含脚本变量(例如
$(MyVar)
)的查询时,我会收到以下异常信息:这是我正在尝试运行的代码(这是从Books Online示例中复制/粘贴的,只添加了连接参数)。Invoke-Sqlcmd:对象引用未设置为对象实例。
$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
中将$(MyVar1)
和$(MyVar2)
替换为'x'
和'y'
,那么它就可以完美地运行。
$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"
有人能告诉我为什么这不起作用吗?