Khi tôi cố gắng sử dụng lệnh ghép ngắn Invoke-Sqlcmd từ SQL Server 2008 để thực thi truy vấn chứa biến kịch bản, ví dụ: $(MyVar)
, tôi nhận được ngoại lệ sau:Lệnh ghép ngắn Invoke-Sqlcmd ném ngoại lệ khi sử dụng tham số -Variable
Gọi-Sqlcmd: Tham chiếu đối tượng không được đặt thành thể hiện của đối tượng.
Đây là mã tôi đang cố chạy (được sao chép/dán từ the Books Online example chỉ với thông số kết nối được thêm).
$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"
Nếu tôi thay $(MyVar1)
và $(MyVar2)
trong -Query
với 'x'
và 'y'
sau đó nó chạy một cách hoàn hảo.
$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"
Bất cứ ai có thể cho tôi biết lý do tại sao tính năng này không hoạt động?
Theo ví dụ Books Online, giao 2 chuỗi vào mảng là chính xác những gì cần phải xảy ra kể từ khi lệnh được mong đợi một loạt các nhiệm vụ khác nhau. – joshuapoehls