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

Вмъкване на цялата DataTable в базата данни наведнъж вместо ред по ред?

Открих, че SqlBulkCopy е лесен начин да направите това и не изисква записване на съхранена процедура в SQL Server.

Ето пример за това как го приложих:

// 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. SQL LocalDB срещу SQL Server CE

  2. ROLLBACK TRUNCATE в SQL Server

  3. Външният ключ подобрява ли ефективността на заявката?

  4. основна pyodbc насипна вложка

  5. Вземете идентификатора на обект от неговото име в SQL Server:OBJECT_ID()