QIOS SqlBulkCopy

  • Copy any SQL Server database to any SQL Server.
  • Start, stop and continue when you want.
  • Disable and enable foreign keys.
  • Generate a foreign keys script.
  • Drop foreign keys.
  • Delete all content from the destination tables.
  • Truncate destination tables.

So, you are ready to move your database to the cloud?

At this point, you have been assigned the task to move your huge SQL Server database to the cloud. The tools you use daily are filled with menu items like Deploy Database to Windows Azure SQL. So this can't be hard. It is well supported. Until you figure out, it is hard.

You probably have read the following pages a couple of times by now: https://azure.microsoft.com/en-us/documentation/articles/sql-database-cloud-migrate/. If you haven't, read them. Those pages contain a lot of background information. To summarize, Microsoft basically provides 3 solutions:

Using Deploy Database to Windows Azure SQL

The first solution lets you use the Deploy Database to Windows Azure SQL functionality of SQL Server Management Studio.

For a 3 table, 1000 records, sample database this method is easy. You click next, next, next and you are there. Our guess is that your database is not this tiny. It is probably at least tens or hundreds of gigabytes, has a couple of hundred tables with millions of records. If you move this database via the Deploy Database to Windows Azure SQL function, it is going to be down for days. You have actually no idea how long it is going to be down. While it is moving, you have no real progress other than the text In progress until the complete process finishes or fails after 3 days.

Transactional replication

Another solution that Microsoft provides (since august 2016) is not that easy either. Setting up transactional replication for a one-time move is a pretty complex job.

The bulk copy (BCP) way

A third solution that Microsoft provides describes a good, controllable, process:

  1. You make a compatible schema of your database. You can use various tools for this.
  2. You publish this schema to Azure.
  3. You use the BCP command-line utility to bulk copy all your tables.
The disadvantage of this process is step 3. You have to create some program or script that will execute and control this copy process. What happens if something goes wrong? Can you continue with half a table? What do you do with your foreign keys?

This is where QIOS SqlBulkCopy jumps in

QIOS SqlBulkCopy replaces the BCP command-line utility in above process. Visit the Help page to learn more or go to Download to get the tool.