Rediger

Bulk import and export of data (SQL Server)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL database in Microsoft Fabric

SQL Server supports exporting data in bulk (bulk data) from a SQL Server table and importing bulk data into a SQL Server table or nonpartitioned view.

  • Bulk exporting refers to copying data from a SQL Server table to a data file.

  • Bulk importing refers to loading data from a data file into a SQL Server table. For example, you can export data from a Microsoft Excel application to a data file and then bulk import that data into a SQL Server table.

Methods for bulk importing and exporting data

SQL Server supports bulk exporting data from a SQL Server table and bulk importing data into a SQL Server table or nonpartitioned view. The following basic methods are available.

Method Description Imports data Exports data
bcp utility A command-line utility (bcp.exe) that bulk exports and bulk imports data and generates format files. Yes Yes
BULK INSERT statement A Transact-SQL statement that imports data directly from a data file into a database table or nonpartitioned view. Yes No
INSERT ... SELECT * FROM OPENROWSET(BULK...) statement A Transact-SQL statement that uses the OPENROWSET bulk rowset provider to bulk import data into a SQL Server table by specifying the OPENROWSET(BULK...) function to select data in an INSERT statement. Yes No
SQL Server Import and Export Wizard The wizard creates basic packages that import and export data between many popular data formats including databases, spreadsheets, and text files. Yes Yes

For rules about using a comma-separated value (CSV) file as the data file for a bulk import of data into SQL Server, see Prepare data for bulk export or import.

Note

Azure Synapse Analytics supports only the bcp utility to import and export delimited files.

Format files

The bcp utility, BULK INSERT, and OPENROWSET BULK all support the use of a specialized format file that stores format information for each field in a data file. A format file might also contain information about the corresponding SQL Server table. Use the format file to provide all the format information required to bulk export data from and bulk import data to an instance of SQL Server.

Important

You can't use bcp to import data from or export data to Azure Blob Storage into Azure SQL Database. Use BULK INSERT or OPENROWSET BULK to import from or export to Azure Blob Storage.

Format files provide a flexible way to interpret data as it's in the data file during import, and also to format data in the data file during export. This flexibility removes the need to write special-purpose code to interpret the data or reformat it to the specific requirements of SQL Server or the external application. For example, if you're bulk exporting data to be loaded into an application that requires comma-separated values, use a format file to insert commas as field terminators in the exported data.

SQL Server supports two types of format files: XML format files and non-XML format files.

The bcp utility is the only tool that can generate a format file. For more information, see Create a format file with bcp. For more information about format files, see Format files to import or export data.

Note

If you don't supply a format file during a bulk export or import operation, you can override the default formatting at the command line.