Utilidad tablediff y Azure

Es habitual, que en los procesos de migración de una aplicación a Azure, tengamos que migrar la base de datos de un SQL Server On-Premise a un SQL Server Azure. A veces, es necesario generar un script SQL de diferencias de datos entre una tabla desplegada en Azure y la misma tabla desplegada On-Premise. Este script SQL nos servirá para igualar los datos de las tablas en los dos despliegues.

Para ello, podemos utilizar la herramienta de linea de comandos tablediff, que viene incluida en la instalación de SQL Server, a partir de la versión 2005. Tablediff, es una utilidad que entre otras cosas puede comparar dos tablas con el mismo esquema y generar un fichero con el script SQL de diferencia de datos. Este script contiene sentencias INSERT, UPDATE y DELETE. A parte la utilidad se puede utilizar para otros fines, como la comparación de los esquemas entre dos tablas, etc.

Más información en msdn.

La buena noticia, es que la utilidad tablediff, originalmente diseñada para trabajar con bases de datos SQL Server On-Premise, también se puede conectar a bases de datos SQL Azure.

Si queremos generar un script SQL de diferencias, es recomendable primero realizar una copia de base de datos en Azure y trabajar con la copia, la cual no tendrá actividad.

Un ejemplo de como utilizar tablediff con el propósito indicado:

«C:/Program Files/Microsoft SQL Server/100/COM/tablediff.exe» -sourceserver «.» -sourcedatabase «mydatabase» -sourcetable «mytable» -destinationserver «myserver.database.windows.net» -destinationdatabase «mydatabase» -destinationtable «mytable» -destinationuser «myuser» -destinationpassword «mypassword» -f myfile.sql