Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Nhập tệp CSV vào SQL Server bằng SqlBulkCopy

Tôi cho rằng bạn có một bảng trong SQL Server mà bạn đã tạo theo cách này:

CREATE TABLE [dbo].[Table1] (
    [Column1]   INT           IDENTITY (1, 1) NOT NULL,
    [Column2]   NVARCHAR (50) NOT NULL
);

tệp chứa các giá trị như vậy:

Column1,Column2
1,N1
2,N2
3,N3

Vì vậy, để chèn hàng loạt giá trị vào bảng, bạn có thể sử dụng SqlBulkCopy theo cách này:

var lines = System.IO.File.ReadAllLines(@"d:\data.txt");
if (lines.Count() == 0) return;
var columns = lines[0].Split(',');
var table = new DataTable();
foreach (var c in columns)
    table.Columns.Add(c);

for (int i = 1; i < lines.Count() - 1; i++)
    table.Rows.Add(lines[i].Split(','));

var connection = @"your connection string";
var sqlBulk = new SqlBulkCopy(connection);
sqlBulk.DestinationTableName = "Table1";
sqlBulk.WriteToServer(table);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để không sử dụng dấu ngoặc vuông trong SQL Server không?

  2. Cách sao lưu hoặc tạo bảng mới từ Bảng SQL Server Hiện có trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 105

  3. Cách dễ dàng xây dựng lại cơ sở dữ liệu tổng thể trong SQL Server

  4. Trình điều khiển không thể thiết lập kết nối an toàn với SQL Server bằng cách sử dụng mã hóa Lớp cổng bảo mật (SSL)

  5. Khi xóa tầng cho bảng tự tham chiếu