Como obtener diferecias entre 2 tablas iguales

18/10/2004 - 22:00 por Luis_2004 | Informe spam
Hola a todos, espero que alguien pueda ayudarme
Tengo 2 bases iguales, con el mismo numero de tablas,
tengo que obtener las diferencias(que tengan algun cambio
en alguna de sus columnas, que se hubiere agregado un
nuevo registro y que se hubiere borrado algun registro)
entre 2 tablas que obviamente son identicas.

Que puedo hacer, porque necesito realizar un query que me
devuelva todas esas diferencias, y de ser posible este
mismo query me arme sentencias sql con cada uno de estos
cambios, para poder aplicarlos a la 2 base con un script

Preguntas similare

Leer las respuestas

#1 Maxi
18/10/2004 - 22:07 | Informe spam
Hola, se que hay alguna herramienta disponible para esto pero francamente no
tengo ningun link como para ayudarte :( pero pensemos un poco ;-)

Si hacemos

SELECT T1.* FROM INFORMATION_SCHEMA.COLUMNS T1 FULL JOIN
INFORMATION_SCHEMA.COLUMNS T2
ON
T1.TABLE_NAME = T2.TABLE_NAME AND T1.COLUMN_NAME = T2.COLUMN_NAME
WHERE T1.COLUMN_NAME IS NULL OR T2.COLUMN_NAME IS NULL

Con esto trato de buscar si hay campos de mas o de menos ;-)

Con los registros luego se me ocurre hacerlo tabla por tabla (es medio
engorroso pero...)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Luis_2004" escribió en el mensaje
news:0e8201c4b54d$1dd0f800$
Hola a todos, espero que alguien pueda ayudarme
Tengo 2 bases iguales, con el mismo numero de tablas,
tengo que obtener las diferencias(que tengan algun cambio
en alguna de sus columnas, que se hubiere agregado un
nuevo registro y que se hubiere borrado algun registro)
entre 2 tablas que obviamente son identicas.

Que puedo hacer, porque necesito realizar un query que me
devuelva todas esas diferencias, y de ser posible este
mismo query me arme sentencias sql con cada uno de estos
cambios, para poder aplicarlos a la 2 base con un script





Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date: 01/10/2004
Respuesta Responder a este mensaje
#2 Luis_2004
18/10/2004 - 22:21 | Informe spam
Maxi, gracias por responder
Parece que no me exprese bien, ahi va nuevamente
Tengo la BD1 y BD2 que contienen la misma structura,
(tablas, sp, etc), lo que necesito obtener es si se
modifico la BD1.Tabla1 en alguno de sus campos (solo en
valores) o si se inserto o borro algun registro, para
despues yo obtener esas diferencias y generar un script
para despues actualizar la BD2.Tabla1 y que de esta forma
esten iguales


Hola, se que hay alguna herramienta disponible para esto


pero francamente no
tengo ningun link como para ayudarte :( pero pensemos un


poco ;-)

Si hacemos

SELECT T1.* FROM INFORMATION_SCHEMA.COLUMNS T1 FULL JOIN
INFORMATION_SCHEMA.COLUMNS T2
ON
T1.TABLE_NAME = T2.TABLE_NAME AND T1.COLUMN_NAME =


T2.COLUMN_NAME
WHERE T1.COLUMN_NAME IS NULL OR T2.COLUMN_NAME IS NULL

Con esto trato de buscar si hay campos de mas o de


menos ;-)

Con los registros luego se me ocurre hacerlo tabla por


tabla (es medio
engorroso pero...)


Salu2

Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET

Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Luis_2004"


escribió en el mensaje
news:0e8201c4b54d$1dd0f800$
Hola a todos, espero que alguien pueda ayudarme
Tengo 2 bases iguales, con el mismo numero de tablas,
tengo que obtener las diferencias(que tengan algun




cambio
en alguna de sus columnas, que se hubiere agregado un
nuevo registro y que se hubiere borrado algun registro)
entre 2 tablas que obviamente son identicas.

Que puedo hacer, porque necesito realizar un query que




me
devuelva todas esas diferencias, y de ser posible este
mismo query me arme sentencias sql con cada uno de




estos
cambios, para poder aplicarlos a la 2 base con un




script



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system


(http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date:


01/10/2004


.

Respuesta Responder a este mensaje
#3 ulises
18/10/2004 - 22:36 | Informe spam
SQL Data Compare (y para el schema SQL Compare) de Red-Gate
(http://www.red-gate.com/), te facilita esa labor y
también te genera los scripts de actualización o te lo
actualiza en línea, puedes bajarte un trial desde su site.
También puedes probar con Apex SQL Diff
(http://www.apexsql.com/), he probado ambos y personalmente
el primero me pareció mejor.

Saludos,
Ulises

Maxi, gracias por responder
Parece que no me exprese bien, ahi va nuevamente
Tengo la BD1 y BD2 que contienen la misma structura,
(tablas, sp, etc), lo que necesito obtener es si se
modifico la BD1.Tabla1 en alguno de sus campos (solo en
valores) o si se inserto o borro algun registro, para
despues yo obtener esas diferencias y generar un script
para despues actualizar la BD2.Tabla1 y que de esta forma
esten iguales


Hola, se que hay alguna herramienta disponible para esto


pero francamente no
tengo ningun link como para ayudarte :( pero pensemos un


poco ;-)

Si hacemos

SELECT T1.* FROM INFORMATION_SCHEMA.COLUMNS T1 FULL JOIN
INFORMATION_SCHEMA.COLUMNS T2
ON
T1.TABLE_NAME = T2.TABLE_NAME AND T1.COLUMN_NAME =


T2.COLUMN_NAME
WHERE T1.COLUMN_NAME IS NULL OR T2.COLUMN_NAME IS NULL

Con esto trato de buscar si hay campos de mas o de


menos ;-)

Con los registros luego se me ocurre hacerlo tabla por


tabla (es medio
engorroso pero...)


Salu2

Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET

Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Luis_2004"


escribió en el mensaje
news:0e8201c4b54d$1dd0f800$
Hola a todos, espero que alguien pueda ayudarme
Tengo 2 bases iguales, con el mismo numero de tablas,
tengo que obtener las diferencias(que tengan algun




cambio
en alguna de sus columnas, que se hubiere agregado un
nuevo registro y que se hubiere borrado algun registro)
entre 2 tablas que obviamente son identicas.

Que puedo hacer, porque necesito realizar un query que




me
devuelva todas esas diferencias, y de ser posible este
mismo query me arme sentencias sql con cada uno de




estos
cambios, para poder aplicarlos a la 2 base con un




script



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system


(http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date:


01/10/2004


.



.

Respuesta Responder a este mensaje
#4 Alexeihdz
19/10/2004 - 05:29 | Informe spam
Hola Luis

una pregunta, porque no sincronizas las bases de datos?
Sería más sencillo que generar scripts que hagan ese trabajo.

"Luis_2004" wrote:

Hola a todos, espero que alguien pueda ayudarme
Tengo 2 bases iguales, con el mismo numero de tablas,
tengo que obtener las diferencias(que tengan algun cambio
en alguna de sus columnas, que se hubiere agregado un
nuevo registro y que se hubiere borrado algun registro)
entre 2 tablas que obviamente son identicas.

Que puedo hacer, porque necesito realizar un query que me
devuelva todas esas diferencias, y de ser posible este
mismo query me arme sentencias sql con cada uno de estos
cambios, para poder aplicarlos a la 2 base con un script

Respuesta Responder a este mensaje
#5 Adrian D. Garcia
19/10/2004 - 13:34 | Informe spam
Aqui tienes los links a 2 herramientas freeware que realizan la tarea de
analizar las diferencias.
Una de ellas (no recuerdo cual) tambien genera los scripts de actualizacion.

Comparacion de Bases de Datos
http://www.snapfiles.com/download/d...mpare.html

http://www.davidemauri.it/dabcos/default.aspx

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Luis_2004" wrote in message
news:0e8201c4b54d$1dd0f800$
Hola a todos, espero que alguien pueda ayudarme
Tengo 2 bases iguales, con el mismo numero de tablas,
tengo que obtener las diferencias(que tengan algun cambio
en alguna de sus columnas, que se hubiere agregado un
nuevo registro y que se hubiere borrado algun registro)
entre 2 tablas que obviamente son identicas.

Que puedo hacer, porque necesito realizar un query que me
devuelva todas esas diferencias, y de ser posible este
mismo query me arme sentencias sql con cada uno de estos
cambios, para poder aplicarlos a la 2 base con un script
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida