當我嘗試使用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