top of page
Search
Writer's pictureVictor Escott

Updated: Dec 14, 2018

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!

50 views0 comments
Writer's pictureVictor Escott

A couple of years ago I found a little gem of a utility called tablediff ,a handy tool that lets you compare the data in two tables in order to identify discrepancies.


Where to find it?

You can locate it by using.



How to use it? Syntax is very simple and self-explanatory.

Let’s prepare the environment, to do so run the following script to create two tables.

Notice that both tables were created under the same instance, but you can compare from two different instances/servers.

Now let’s create a simple compare, it would look something like this:

Notice that I used my integrated security login, but you can specify a user name and password.

If we now run the tablediff command, our results would look something like this:

Generating T-SQL Scripts

One of the most interesting features of the tablediff utility is the ability to generate T-SQL script to bring the table at the destination into convergence with the table at the source.


So in order to do so, let’s run the following tablediff command.

-f [ file_name ] You can optionally specify a name and path for the generated Transact-SQL script file. If file_name is not specified, the Transact-SQL script file is generated in the directory where the utility runs.

Voila now we have a .sql file with the INSERTS and UPDATES statements to update the target.

Get the most out of it

I have been working a lot with SQL Express instances, so I built a small program in .NET that runs every night, executes tablediff command in PowerShell and takes care of the replication that is not available in SQL Express (You can setup Subscriber only). I going to share more about this in the near future.


Note: I am aware that we can achieve the same result by using the new SQL Server Data Tools (SSDT), but I think that TableDiff is a very handy tool.

Enjoy!!!

88 views0 comments
Writer's pictureVictor Escott


¿Cómo termine trabajando como Administrado/Desarrollador de SQL Server?
UN DBA POR ACCIDENTE

¿Cómo termine trabajando como DBA/Desarrollador de SQL Server?


Bueno, es una historia muy aburrida, pero intentare hacerla lo más corta posible. Soy Ingeniero en Sistemas Computacionales, me gradué de la Universidad Quetzalcóatl en Irapuato, México (Si señor, soy Mexicano), tiempo después descubrí que escribir código era mi mejor fortaleza.



Trabaje para algunas compañías en México y estaba bastante feliz con todo lo que hacía, pero un día un buen amigo me ofreció un trabajo como Desarrollador de Software, el trabajo era en Dallas,TX y tenía que desarrollar en VB6,.NET, SQL Server, etc. Mientras disfrutaba mi nuevo trabajo, descubrí que SQL Server se me facilitaba bastante (Tengo que confesar que lo odie por un par de años), 8 años después aquí estoy, trabajando para la misma empresa, buscando maneras de compartir lo que he aprendido y descubriendo que cuanto más sé, más necesito aprender.


¿Qué te parece si me cuentas como llegaste al mundo de SQL server?

17 views0 comments
bottom of page