PowerShell:无法插入GUID



我正试图将csv文件中的数据插入SQL Server中的表中,其中一列的数据类型为uniqueidentifier

csv文件中的数据是一个guid,我可以将guid复制并粘贴到uniqueidentifier列中,因此数据是有效的,但当我尝试通过powershell加载数据时,我会得到以下错误

写入SqlTableData:无法将数据源中类型为String的给定值转换为指定目标列的类型uniqueidentifier。

以下是我加载数据的失败尝试。

$rows = Import-Csv -Path $csv
$rows | Select-Object string,
@{name="GUID";expression={ [string]$_.String }},
@{name="Company";expression={ [string]$_.String }},
@{name="Modified";expression={ [datetime]$_.DateTime }}
$rows | Write-SqlTableData ....

如果有人能帮我指明正确的方向,那就太好了!

您只需要在写入数据类型之前将其强制转换为[guid]

如果你的csv看起来像这样,例如:

GUID,Company,Modified
00000000-0000-0000-0000-000000000000,CorpA,2022-10-10
11111111-1111-1111-1111-111111111111,CorpB,2022-11-11
etc...

然后,您应该能够将csv输入转换为guid,如下所示:

$rows = Import-Csv -Path $csv |
Select-Object @{n="GUID";e={[guid]$_.GUID}},
Company,
@{n="DateTime";e={[DateTime]$_.DateTime}}
$rows | Write-SqlTableData ....

如果您也使用powershell生成CSV,那么您可能更喜欢Export-ClixmlImport-Clixml命令,因为它们将保持数据类型不变,而不是转换为字符串

相关内容

  • 没有找到相关文章

最新更新