Det finns två sätt jag skulle närma mig detta:
BCP.exe
SQL Server tillhandahåller kommandoradsverktyget bcp för att massimportera data. Du kan helt enkelt infoga bcp-körningen i ditt Powershell-skript eller fönster för att ladda csv-data.Exempel:
$loadfile = "C:\datafile\loadthis.csv"
bcp pity.dbo.foo in $loadfile -T -c -t","
Använder .NET
Du kan också använda .NET-biblioteken i Powershell, men det här är ett mycket svårare förslag. Skaffa först Out-DataTable och Write-DataTable manus av Chad Miller, som kommer att göra ditt liv mycket, mycket lättare. Sedan kan du göra följande:
$dt = Import-Csv -Path "C:\datafile\loadthis.csv" | Out-DataTable
Write-DataTable -ServerInstance "localhost" -Database "pity" -TableName "foo" -Data $dt
Dessa och andra lösningar finns i detalj i det här blogginlägget .