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

Masukkan seluruh DataTable ke dalam database sekaligus, bukan baris demi baris?

Saya menemukan SqlBulkCopy adalah cara mudah untuk melakukan ini, dan tidak memerlukan prosedur tersimpan untuk ditulis di SQL Server.

Berikut adalah contoh bagaimana saya menerapkannya:

// take note of SqlBulkCopyOptions.KeepIdentity , you may or may not want to use this for your situation.  

using (var bulkCopy = new SqlBulkCopy(_connection.ConnectionString, SqlBulkCopyOptions.KeepIdentity))
{
      // my DataTable column names match my SQL Column names, so I simply made this loop. However if your column names don't match, just pass in which datatable name matches the SQL column name in Column Mappings
      foreach (DataColumn col in table.Columns)
      {
          bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
      }

      bulkCopy.BulkCopyTimeout = 600;
      bulkCopy.DestinationTableName = destinationTableName;
      bulkCopy.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. 4 Sumber Daya Pemantauan SQL Server yang Menakjubkan untuk Administrator Basis Data

  2. Mengembalikan Daftar Skema Partisi di SQL Server (T-SQL)

  3. SQL Server APAPUN Operator Dijelaskan

  4. Menjelajahi SQL Server 2016 Query Store GUI

  5. Bisakah kunci asing menjadi NULL dan/atau duplikat?