Hace un par de años encontré una pequeña utilidad llamada tablediff, una herramienta bastante útil que le permite comparar los datos en dos tablas para identificar discrepancias.
¿Dónde encontrarlA?
Puedes localizarlo utilizando.
¿Cómo usarla?
La sintaxis es muy simple y se explica por sí misma.
Preparemos el entorno de trabajo, para ello ejecute el siguiente script para crear dos tablas.
Observe que ambas tablas se crearon en la misma instancia, pero podemos comparar tablas que se encuentren en instancias / servidores diferentes.
Ahora vamos a hacer una comparación muy sencilla, debería quedar algo así:
Observe que utilicé mi inicio usuario de Windows, pero también podemos especificar un nombre de usuario y una contraseña.
Si ejecutamos el comando tablediff, nuestros resultados se verían así:
Generar T-SQL Scripts
Una de las características más interesantes de la utilidad tablediff es la capacidad de generar scripts de T-SQL para hacer que la tabla en el destino se sincronice con la tabla fuente.
Ejecutemos el siguiente comando y veamos que pasa.
-f [nombre_archivo] Opcionalmente, se puede especificar un nombre y una ruta para generar un archivo T-SQL. Si no se especifica file_name, el archivo se generara en el directorio donde se ejecuta la utilidad.
Voila ahora tenemos un archivo .sql con las instrucciones INSERTS y UPDATES para actualizar la tabla destino.
Aprovecha esta utilidad al máximo
He estado trabajando mucho con instancias de SQL Express, así que construí un pequeño programa en .NET que se ejecuta todas las noches, ejecuta el comando tablediff en PowerShell y se encarga de la replicación que no está disponible en SQL Express (solo puedes configurar la instancia como suscriptor). Voy a compartir más sobre esto mis próximos post.
Nota: Yo soy consciente de que podemos lograr el mismo resultado utilizando las SQL Server Data Tools (SSDT), pero creo que TableDiff es una herramienta muy útil.
¡Diviértanse aprendiendo!
Comentários