Usando SQL Server Comparison Tool para comparar bases de datos


Es común la necesidad de comparar bases de datos, ya sea para solucionar problemas, para revisar el efecto de una aplicación sobre una base de datos, etc.

En este contexto, SQL Server Comparison Tool es una herramienta que nos permite comparar bases de datos SQL Server con mucha facilidad. En este artículo mostraré su uso en dos escenarios.

Escenario 1: Dos bases de datos iguales, pero una de ellas una tabla, una vista y dos procedimientos almacenados extra


Para este escenario, yo creé un par de bases de datos: Test 1 y Test2. Test2 contendrá la tabla, vista y procedimientos almacenados extras. Por el momento, no tienen nada:



Ahora, insertaremos datos idénticos en ambas bases de datos: Una tabla llamada Personas, una vista llamada vista_Personas y un procedimiento almacenado llamado pa_Personas.

Tabla Personas


Primero, la tabla Personas con datos idénticos. Abra una ventana de consultas y pegue y ejecute la siguiente consulta:

USE Test1;
CREATE TABLE Personas
(
ID int,
Nombre varchar(255),
Apellido varchar(255),
Edad int,
);
GO

INSERT INTO Personas
VALUES
(1,'Albert','Einstein',56),
(2,'Marilyn','Monroe',18),
(3,'Bart','Simpson',10),
(4,'Mary','Jane',42)
GO

USE Test2;
CREATE TABLE Personas
(
ID int,
Nombre varchar(255),
Apellido varchar(255),
Edad int,
);
GO

INSERT INTO Personas
VALUES
(1,'Albert','Einstein',56),
(2,'Marilyn','Monroe',18),
(3,'Bart','Simpson',10),
(4,'Mary','Jane',42)
GO

Eso crea una tabla llamada Personas en ambas bases de datos. Luego, se añaden algunos datos a la tabla.



Crear la vista


Para crear la vista, ejecute la siguiente consulta:

USE Test1;
GO
CREATE VIEW vista_Personas
AS
SELECT Nombre, Apellido
FROM Personas
WHERE Edad > 20;
GO

USE Test2;
GO
CREATE VIEW vista_Personas
AS
SELECT Nombre, Apellido
FROM Personas
WHERE Edad > 20;
GO

Eso crea una vista llamada vista_Personas en la base de datos Test1 que selecciona todas as personas mayores de 20.

Crear el procedimiento almacenado


Para crear el procedimiento almacenado pa_Personas, ejecute el siguiente código:

USE Test1
GO
CREATE PROCEDURE pa_Personas
@edad int
AS
SELECT Nombre, Apellido
FROM Personas
WHERE Edad = @edad
GO

USE Test2
GO
CREATE PROCEDURE pa_Personas
@edad int
AS
SELECT Nombre, Apellido
FROM Personas
WHERE Edad = @edad
GO

En este punto, tenemos dos bases de datos con datos idénticos. Lo siguiente será añadir una tabla, una vista y 2 procedimientos almacenados extra a la base de datos Test2. Lo podemos hacer ejecutando la siguiente consulta:

USE Test2
GO
CREATE TABLE Autos
(
Id int,
Marca varchar(255),
Transmision varchar(255),
)
GO

INSERT INTO Autos
VALUES
(1,'Toyota','manual'),
(2,'Mazda','manual'),
(3,'Ford','automatica'),
(4,'Toyota','automatica')
GO

CREATE VIEW vista_extra
AS
SELECT Id, Marca
FROM Autos
WHERE Transmision = 'manual'
GO

CREATE PROCEDURE pa_extra
@marca varchar(255)
AS
SELECT Id, Transmision
FROM Autos
WHERE Marca = @marca
GO

CREATE PROCEDURE pa_extra2
@marca varchar(255)
AS
SELECT Id, Transmision
FROM Autos
WHERE Marca = @marca
GO

Comparar las diferencias entre bases de datos con SQL Server Comparisson Tool

1. Abra SQL Server Comparisson Tool

2. Conéctese a su servidor SQL Server

3. En el panel izquierdo, en ‘Database’ seleccione ‘Test1’. En el panel derecho, seleccione ‘Test2’:



4. Haga clic en ‘Compare All’.

5. Seleccione ‘Tables’, ‘Procedures’ y ‘Views’ y haga clic en ‘Compare’.



6. Ya que la comparación ha sido realizada, los resultados serán mostrados en un reporte:



Este puede ser copiado al portapapeles o a un archivo.

Escenario 2: Dos tablas idénticas, una de ellas con 3 filas extras de datos


Para este escenario, usaremos la tabla ‘Personas’, que es idéntica tanto en Test1 como en Test2. Ahora, para añadir las 3 filas extras de datos a esta tabla en Test2 use la siguiente consulta:

USE Test2
GO
INSERT INTO Personas
VALUES
(6,'Abraham','Lincoln',40),
(7,'Veronica','Aruquipa',25),
(8,'Maria','Leon',20)
GO

Para hacer la comparación de tablas con SQL Server Comparison Tool:

1. Abra SQL Server Comparison Tool.

2. Conéctese a su servidor SQL Server.

3. En el panel izquierdo, en ‘Database’ seleccione ‘Test1’. En el panel derecho, seleccione ‘Test2’ y la tabla ‘Personas’:



4. Haga clic en ‘Compare Data’.

5. Haga clic en ‘OK’ en el diálogo ‘Data Comparison options’.

6. Espere un momento y se generará un reporte con un resumen de los resultados. En este caso, muestran las 3 filas de diferencia:



SQL Server Comparison Tool es una herramienta que se destaca por su facilidad de uso. Además de eso, la posibilidad de exportar los resultados a diferentes tipos de salidas le otorga utilidad extra. La herramienta tiene un periodo de prueba de 30 días. Ya que se trata de un periodo de prueba gratis, aconsejo probar esta herramienta, ya que, en realidad, es muy fácil de usar y ahorra tiempo y esfuerzo.

Comentarios

Entradas populares de este blog

The Deep Sea: una web interactiva para explorar las profundidades el mar y descubrir las extrañas criaturas que viven en él

Detectar el usuario de Windows utilizando C#

Lo nuevo de SQL Server 2008 respecto a SQL Server 2005