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

Có cách nào để chèn hoặc cập nhật SQLBulkCopy nếu tồn tại không?

Tôi đã xuất bản một gói nuget (SqlBulkTools) để giải quyết vấn đề này.

Đây là một ví dụ về mã sẽ đạt được tăng cường hàng loạt.

var bulk = new BulkOperations();
var books = GetBooks();

using (TransactionScope trans = new TransactionScope())
{
    using (SqlConnection conn = new SqlConnection(ConfigurationManager
    .ConnectionStrings["SqlBulkToolsTest"].ConnectionString))
    {
        bulk.Setup<Book>()
            .ForCollection(books)
            .WithTable("Books")
            .AddAllColumns()
            .BulkInsertOrUpdate()
            .MatchTargetOn(x => x.ISBN)
            .Commit(conn);
    }

    trans.Complete();
}

Đối với các bảng rất lớn, có các tùy chọn để thêm khóa bảng và tạm thời vô hiệu hóa các chỉ mục không phân cụm. Xem Tài liệu SqlBulkTools để biết thêm ví dụ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối SQL Server với SugarCRM

  2. Đếm số hàng mỗi giờ trong SQL Server với giá trị ngày-giờ đầy đủ là kết quả

  3. Trả về tất cả các khóa ngoại tham chiếu đến một bảng đã cho trong SQL Server

  4. Định cấu hình nhóm AlwaysOn Av sẵn sàng trên SQL Server

  5. 4 kiểu dữ liệu sẽ không được chấp nhận trong SQL Server