Performing Bulk Copy Operations (ODBC)

The ODBC standard does not directly support SQL Server bulk copy operations. When connected to an instance of SQL Server version 7.0 or later, the SQL Server Native Client ODBC driver supports the DB-Library functions that perform SQL Server bulk copy operations. This driver-specific extension provides an easy upgrade path for existing DB-Library applications that use bulk copy functions. The specialized bulk copy support is in the following files: 

  • sqlncli.h

    Includes function prototypes and constant definitions for bulk copy functions. sqlncli.h must be included in the ODBC application performing bulk copy operations and must be in the application's include path when it is compiled.

  • sqlncli10.lib

    Must be in the library path of the linker and specified as a file to be linked. sqlncli10.lib is distributed with the SQL Server Native Client ODBC driver.

  • sqlncli10.dll

    Must be present at execution time. sqlncli10.dll is distributed with the SQL Server Native Client ODBC driver.


The ODBC SQLBulkOperations function has no relationship to the SQL Server bulk copy functions. Applications must use the SQL Server-specific bulk-copy functions to perform bulk copy operations.

Minimally Logging Bulk Copies

With the Full Recovery model, all row-insert operations performed by bulk load are fully logged in the transaction log. For large data loads, this can cause the transaction log to fill rapidly. Under certain conditions, minimally logging is possible. Minimal logging reduces the possibility of a bulk load operation filling the log space and is also more efficient than full logging.

For information on using minimal logging, see Prerequisites for Minimal Logging in Bulk Import.


When using bcp.exe in SQL Server 2005 or later, you might see errors in situations where there were no errors prior to SQL Server 2005. This is because in the later versions, bcp.exe no longer performs implicit data type conversion. Prior to SQL Server 2005, bcp.exe converted numeric data to a money data type, if the target table had a money data type. However, in that situation, bcp.exe simply truncated extra fields. Beginning in SQL Server 2005, if data types do not match between the file and the target table, bcp.exe will raise an error if there is any data that would have to be truncated to fit into the target table. To resolve this error, fix the data to match the target data type. Optionally, use bcp.exe from a release prior to SQL Server 2005.