使用powershell导出csv文件,这些都是字符串,需要作为ints上载到sql server

使用powershell导出csv文件,这些都是字符串,需要作为ints上载到sql server,sql,sql-server,powershell,export-to-csv,Sql,Sql Server,Powershell,Export To Csv,这里有一个有趣的问题,我使用powershells导出csv实用程序创建了一系列csv文件,所有文件都具有不同的内容。据我所知,这将导出一个csv文件,其中所有值都是字符串,因此用引号封装。这是一个问题,因为所有字段都有不同的类型值,包括int、double等。我需要能够将它们导入SQL Server,并且在尝试插入到具有这些类型的字段时,引号会造成问题 我考虑过使用regex删除所有引号,或者使用不同的分隔符,例如管道,但这种方法的问题是,其他一些字段是邮件之类的项目,其中可能有引号,需要保留

这里有一个有趣的问题,我使用powershells导出csv实用程序创建了一系列csv文件,所有文件都具有不同的内容。据我所知,这将导出一个csv文件,其中所有值都是字符串,因此用引号封装。这是一个问题,因为所有字段都有不同的类型值,包括int、double等。我需要能够将它们导入SQL Server,并且在尝试插入到具有这些类型的字段时,引号会造成问题

我考虑过使用regex删除所有引号,或者使用不同的分隔符,例如管道,但这种方法的问题是,其他一些字段是邮件之类的项目,其中可能有引号,需要保留

我也曾尝试过通过clixml导出到xml的想法,但是,我需要导入数据的人能够避免复杂的导入方法,如SSI


任何建议都是好建议,谢谢

他们将使用什么来导入数据,以及该程序如何识别强类型数据

我可以通过将typecast指定为字符串的一部分,然后在重新导入时调用该表达式,在Powershell中键入csv数据:

$ht = @{
Prop1 = "[int]21"
Prop2 = "[datetime]'07/18/2011'"
Prop3 = "[double]31"
}

$x = new-object psobject -property $ht
$x | export-csv testtype.csv -notype

$y = import-csv testtype.csv 
$props = $y.psobject.properties | select -expand name


$y |% {
foreach ($prop in $props){$_.$prop = iex $_.$prop}
}

用于导入的内容如何识别数据类型?您能否以程序可以识别的格式向字符串添加类型转换

哎呀。事实上,这使得它对于其他任何东西来说都是一个非常脆弱的CSV。如果您需要类型化的PowerShell-only转储格式,那么CLIXML可能更好。您的解决方案的问题是,需要上载的CSV超过300个,并且每个月CSV中的数据都会有所不同。因此,类型转换确实是不可行的……还有,Joey,如果我选择这样做,有没有一种简单的方法可以导入xml文档?@Joey-我理解它是“脆弱的”。它旨在演示如何在字符串中使用显式类型转换。如果都在powershell中,您可以使用clixml,或者只保留typeinfo标题。@user823694-您似乎有相互排斥的目标。您需要强类型数据,但不希望强类型数据。这是一个很好的说法;)