我在将Microsoft.SqlServer.Management.Smo.Table
对象与Write-SqlTableData
cmdlet一起使用时遇到问题。
我的代码类似于以下内容(出于隐私目的更改了名称)
# $sc is a working SQL Server connection
$srv = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server $sc
$Table = $srv.databases["Database"].tables["Table"]
# $Data is a DataSet full of data
$Result = Write-SqlTableData -InputData $Data -InputObject $Table -PassThru
我遇到以下错误:
Write-SqlTableData:无法绑定参数“ InputObject”。无法将类型“ Microsoft.SqlServer.Management.Smo.Table”的“ [dbo]。[Table]”值转换为类型“ Microsoft.SqlServer.Management.Smo.Table”。
在C:\ Script.ps1:177 char:68
+ ... ableData -InputData $ Data -InputObject $ Table -PassTh ...
+ ~~~~~~ + CategoryInfo:InvalidArgument:(:) [Write-SqlTableData],ParameterBindingException
+ FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.SqlServer.Management.PowerShell.WriteSqlTableData
所有连接均已测试并且可以正常工作。我应该有权访问数据库。我认为在创建表对象方面可能会丢失一些东西。也许我需要给它更多信息以便进行转换。但是它应该能够转换成自己类型的对象吗?