This documentation is archived and is not being maintained.

Performing Bulk Copy Operations 

Microsoft SQL Server includes a popular command-line utility named bcp for quickly bulk copying large files into tables or views in SQL Server databases. The SqlBulkCopy class allows you to write managed code solutions that provide similar functionality. There are other ways to load data into a SQL Server table (INSERT statements, for example) but SqlBulkCopy offers a significant performance advantage over them.

The SqlBulkCopy class can be used to write data only to SQL Server tables. But the data source is not limited to SQL Server; any data source can be used, as long as the data can be loaded to a DataTable instance or read with a IDataReader instance.

Using the SqlBulkCopy class, you can perform:

  • A single bulk copy operation

  • Multiple bulk copy operations

  • A bulk copy operation within a transaction


When using .NET Framework version 1.1 or earlier (which does not support the SqlBulkCopy class), you can execute the SQL Server Transact-SQL BULK INSERT statement using the SqlCommand object.

In This Section

Creating Tables for the Bulk Copy Examples

Describes the tables used in the bulk copy examples and provides SQL scripts for creating the tables in the AdventureWorks database.

Performing a Single Bulk Copy Operation

Describes how to do a single bulk copy of data into an instance of SQL Server using the SqlBulkCopy class, and how to perform the bulk copy operation using Transact-SQL statements and the SqlCommand class.

Performing Multiple Bulk Copy Operations

Describes how to do multiple bulk copy operations of data into an instance of SQL Server using the SqlBulkCopy class.

Performing a Bulk Copy Operation in a Transaction

Describes how to perform a bulk copy operation within a transaction, including how to commit or rollback the transaction.

See Also