Existem duas maneiras pelas quais eu abordaria isso:
BCP.exe
O SQL Server fornece o utilitário de linha de comando bcp para importar dados em massa. Você pode simplesmente incorporar a execução bcp em seu script ou janela do Powershell para carregar os dados csv.Exemplo:
$loadfile = "C:\datafile\loadthis.csv"
bcp pity.dbo.foo in $loadfile -T -c -t","
Usando .NET
Você também pode usar as bibliotecas .NET no Powershell, mas essa é uma proposta muito mais complicada. Primeiro, obtenha o Out-DataTable e Write-DataTable roteiros de Chad Miller, que tornarão sua vida muito, muito mais fácil. Então você poderia fazer o seguinte:
$dt = Import-Csv -Path "C:\datafile\loadthis.csv" | Out-DataTable
Write-DataTable -ServerInstance "localhost" -Database "pity" -TableName "foo" -Data $dt
Essas e outras soluções podem ser encontradas em detalhes em esta postagem do blog .