Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Adakah cara untuk menyisipkan atau memperbarui SQLBulkCopy jika ada?

Saya menerbitkan paket nuget (SqlBulkTools) untuk mengatasi masalah ini.

Berikut adalah contoh kode yang akan mencapai upsert massal.

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();
}

Untuk tabel yang sangat besar, ada opsi untuk menambahkan kunci tabel dan menonaktifkan sementara indeks yang tidak berkerumun. Lihat Dokumentasi SqlBulkTools untuk contoh lainnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mengelompokkan berdasarkan kolom tanggal waktu tanpa mempertimbangkan waktu?

  2. Tidak dapat membuat instance penyedia OLE DB Microsoft.Jet.OLEDB.4.0 untuk server tertaut null

  3. Cache Objek Sementara SQL Server

  4. Enkripsi Cadangan Basis Data SQL Server

  5. Cara Mengubah Profil Email Database Default untuk Pengguna di SQL Server (T-SQL)