Ci sono due modi in cui mi avvicinerei a questo:
BCP.exe
SQL Server fornisce l'utilità della riga di comando bcp per importare dati in blocco. Potresti semplicemente incorporare l'esecuzione bcp nello script o nella finestra di Powershell per caricare i dati csv. Esempio:
$loadfile = "C:\datafile\loadthis.csv"
bcp pity.dbo.foo in $loadfile -T -c -t","
Utilizzo di .NET
Potresti anche usare le librerie .NET in Powershell, ma questa è una proposta molto più complicata. Innanzitutto, ottieni la Out-DataTable e Write-DataTable sceneggiature di Chad Miller, che ti renderanno la vita molto, molto più facile. Quindi potresti fare quanto segue:
$dt = Import-Csv -Path "C:\datafile\loadthis.csv" | Out-DataTable
Write-DataTable -ServerInstance "localhost" -Database "pity" -TableName "foo" -Data $dt
Queste e altre soluzioni possono essere trovate in dettaglio in questo post del blog .