Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Някакъв начин за вмъкване или актуализиране на SQLBulkCopy, ако съществува?

Публикувах пакет nuget (SqlBulkTools), за да разреша този проблем.

Ето пример за код, който би постигнал масово прехвърляне.

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

За много големи таблици има опции за добавяне на заключвания на таблици и временно деактивиране на неклъстерирани индекси. Вижте SqlBulkTools Documentation за повече примери.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQRT() Примери в SQL Server

  2. Какво се случва с идентификатора на първичния ключ, когато надхвърли лимита?

  3. Променете паролата за вход в SQL сървър

  4. Филтрирайте по изходна клауза sql

  5. Как да намерите всички зависимости на таблица в sql сървър