How to export all data from table to an insertable sql format?
Exporting SQL Server Table Data to Insertable SQL Format

Learn various methods to export data from a SQL Server table into an INSERT statement format, suitable for migration, backup, or sharing.
Exporting data from a SQL Server table into an insertable SQL format is a common task for developers and database administrators. This process generates INSERT
statements that can be executed on another database to recreate the data. This is particularly useful for migrating small to medium-sized datasets, creating test data, or sharing specific table contents without exporting the entire database schema and data. This article will explore several methods, including using SQL Server Management Studio (SSMS), SQL scripts, and command-line tools.
Method 1: Using SQL Server Management Studio (SSMS) - Generate Scripts
SQL Server Management Studio (SSMS) provides a built-in feature to generate scripts for database objects, including data. This is often the most straightforward method for GUI users.
1. Open SSMS and Connect
Launch SQL Server Management Studio and connect to your SQL Server instance.
2. Navigate to Database
In Object Explorer, expand 'Databases', then expand the specific database containing your table.
3. Generate Scripts Wizard
Right-click on the database, select 'Tasks', then choose 'Generate Scripts...'. This will open the 'Generate and Publish Scripts' wizard.
4. Choose Objects
On the 'Choose Objects' page, select 'Select specific database objects' and check the box next to the table(s) you wish to export.
5. Set Scripting Options
On the 'Set Scripting Options' page, click 'Advanced'. In the 'Advanced Scripting Options' dialog, find the 'Types of data to script' option and set it to 'Data only' or 'Schema and data' if you also need the table structure. Ensure 'Script INSERTs and DROP TABLE' is set to 'True' if you want DROP TABLE
statements included.
6. Specify Output
Choose your desired output type: 'Save as script file' (to a single file or multiple files), 'Save to new query window', or 'Save to clipboard'. Click 'Next' and then 'Finish' to generate the script.
flowchart TD A[Start SSMS] --> B{Connect to Server} B --> C[Right-click Database] C --> D[Tasks -> Generate Scripts...] D --> E[Choose Objects: Select Table] E --> F[Set Scripting Options: Advanced] F --> G{"Types of data to script": "Data only"} G --> H[Specify Output: File/Query Window] H --> I[Finish] I --> J[End: SQL Script Generated]
Process for exporting data using SSMS Generate Scripts Wizard
Method 2: Using the SQL Server Import and Export Wizard
While primarily used for importing and exporting between different data sources, the Import and Export Wizard can also be leveraged to generate INSERT
statements, though it's less direct than the Generate Scripts option.
1. Start the Wizard
In SSMS, right-click on your database, select 'Tasks', then 'Export Data...'. This launches the SQL Server Import and Export Wizard.
2. Choose a Data Source
Select 'SQL Server Native Client' or 'Microsoft OLE DB Provider for SQL Server' as the data source. Specify the server name and authentication details, then select your database.
3. Choose a Destination
For the destination, select 'Flat File Destination'. Provide a file name and path where the INSERT
statements will be saved. Set the 'Format' to 'Delimited'.
4. Specify Table Copy or Query
Choose 'Copy data from one or more tables or views' and select your table. Alternatively, 'Write a query to specify the data to transfer' gives you more control over the data being exported.
5. Edit Mappings (Crucial Step)
On the 'Select Source Tables and Views' page, select your table and click 'Edit Mappings'. Here, you can define how columns are mapped. More importantly, you can often find an option to 'Generate SQL INSERT statements' or similar, depending on the version and specific destination configuration. This method is less direct for generating INSERT
statements compared to the 'Generate Scripts' wizard, and might require manual manipulation of the output file to convert it into INSERT
statements if a direct option isn't available.
6. Run the Package
Proceed through the wizard, saving the package if desired, and execute it to export the data.
INSERT
statements, the 'Generate Scripts' wizard is usually more direct for this specific task.Method 3: Custom SQL Scripting
For more control or when SSMS is not available, you can write a custom SQL script to generate INSERT
statements. This method is highly flexible and can be adapted to specific requirements, such as filtering data or formatting output.
The core idea is to construct a string for each row that represents an INSERT
statement. This can be done using string concatenation functions like CONCAT
or the +
operator.
SELECT 'INSERT INTO YourTableName (Column1, Column2, Column3) VALUES (''' +
REPLACE(CAST(Column1 AS NVARCHAR(MAX)), '''', '''''') + ''', ''' +
REPLACE(CAST(Column2 AS NVARCHAR(MAX)), '''', '''''') + ''', ' +
CAST(Column3 AS NVARCHAR(MAX)) + ');'
FROM YourTableName;
Example SQL script to generate INSERT statements
''
). Numeric values do not need quotes. Dates and times require specific formatting and quoting.For more complex scenarios, especially with various data types, you might need a more robust script, possibly involving dynamic SQL or a cursor, though these can be resource-intensive for very large tables.
Method 4: Using bcp
Utility (Command Line)
The bcp
(Bulk Copy Program) utility is a command-line tool that can efficiently copy data between SQL Server and a data file in a user-specified format. While primarily for bulk import/export, it can be configured to generate INSERT
statements, though it requires a format file and some post-processing.
The bcp
utility is powerful for large datasets but requires a good understanding of its parameters and format files. For generating INSERT
statements directly, it's often combined with a format file that specifies how data should be written, and then the output file might need further processing to prepend INSERT INTO
statements.
# Export data to a CSV file first
bcp "SELECT Column1, Column2 FROM YourDatabase.dbo.YourTableName" queryout "C:\temp\data.csv" -c -t, -S YourServerName -U YourUsername -P YourPassword
# Then, you would typically write a script (e.g., Python, PowerShell) to read this CSV
# and generate INSERT statements. Direct INSERT statement generation is not bcp's primary strength.
Basic bcp command to export data to a CSV file
bcp
utility is excellent for raw data export. If your primary goal is INSERT
statements, SSMS's 'Generate Scripts' wizard or a custom SQL script are generally more direct and less prone to errors for this specific task.