Sql-Server

Invoke-DbaQuery 在新伺服器上不起作用,找不到“SqlCommand”的重載

  • January 27, 2022

我已經在沒有和使用github 上的Getting Started文件中的 -Force 參數的情況下執行了安裝腳本

Install-Module dbatools -Scope CurrentUser
Install-Module dbatools -Scope CurrentUser -Force

此程式碼適用於我的舊伺服器,但不適用於新伺服器。

$Params =
@{
   Column1 = $Column1;
   Column2 = $Column2
}


$InsertQuery =
"           
   insert into dbo.Table
   (
       Column1,
       Column2
   )
   values
   (
       @Column1,
       @Column2
   )
"


Invoke-DbaQuery -SqlInstance "server" -Database "database" -Query $TableSizeInsertQuery -SqlParameter $Params

我不斷收到此錯誤:

Error connecting to [server]: Cannot find an overload for "SqlCommand" and the argument count: "2". At C:\Users\username\Documents\WindowsPowerShell\Modules\dbatools\1.1.46\allcommands.ps1:92862 char:9
+         throw $records[0]
+         ~~~~~~~~~~~~~~~~~
   + CategoryInfo          : InvalidOperation: (server:String) [], Exception
   + FullyQualifiedErrorId : dbatools_Invoke-DbaQuery

我還執行了這些命令:

Install-Module -Name SqlServer
import-module -name SqlServer
install-module -name dbatools
Import-Module -name dbatools

如果您先導入,則sqlserveranddbatools模組在載入到同一會話時會發生衝突sqlserver。見https://github.com/sqlcollaborative/dbatools/issues/7897

sqlserver解決方法是使用時不導入dbatools,或者dbatools先導入。

引用自:https://dba.stackexchange.com/questions/305582