Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come inserire i dati di un file CSV nella tabella db di SQL Server utilizzando PowerShell

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 .