Có hai cách tôi sẽ tiếp cận vấn đề này:
BCP.exe
SQL Server cung cấp tiện ích dòng lệnh bcp để nhập hàng loạt dữ liệu. Bạn có thể chỉ cần kết hợp thực thi bcp vào tập lệnh hoặc cửa sổ Powershell của mình để tải dữ liệu csv. Ví dụ:
$loadfile = "C:\datafile\loadthis.csv"
bcp pity.dbo.foo in $loadfile -T -c -t","
Sử dụng .NET
Bạn cũng có thể sử dụng các thư viện .NET trong Powershell, nhưng đây là một đề xuất phức tạp hơn nhiều. Trước tiên, hãy tải Out-DataTable và Ghi-DataTable kịch bản của Chad Miller, sẽ làm cho cuộc sống của bạn dễ dàng hơn rất nhiều. Sau đó, bạn có thể làm như sau:
$dt = Import-Csv -Path "C:\datafile\loadthis.csv" | Out-DataTable
Write-DataTable -ServerInstance "localhost" -Database "pity" -TableName "foo" -Data $dt
Bạn có thể tìm thấy chi tiết các giải pháp này và các giải pháp khác trong bài đăng trên blog này .