Tengo table a
y table b
. (SQL Server 2008)T-SQL - ¿Hay alguna forma (gratuita) de comparar datos en dos tablas?
Ambas tablas tienen exactamente el mismo esquema.
Para los fines de esta pregunta, considere table a
= mi tabla de desarrollo local, table b
= la tabla en vivo.
Necesito crear un script SQL (que contenga UPDATE/DELETE/INSERT
declaraciones) que actualizará la tabla b para que sea la misma que la tabla a. Esta secuencia de comandos se implementará en la base de datos en vivo.
¿Hay alguna herramienta gratuita que pueda hacer esto o, mejor aún, puedo hacerlo yo mismo?
Estoy pensando que probablemente necesite hacer algún tipo de unión en todos los campos en las tablas, luego generar SQL dinámico basado en eso.
¿Alguien tiene alguna idea?
EDITAR
bien, pensé en aclarar esta cuestión un poco.
La tabla que necesito sincronizar es una tabla de búsqueda simple. La información es muy simple y directa.
He aquí una idea de lo que TABLE A
podría ser:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 0
He aquí una idea de lo que TABLE B
podría ser:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 1
Básicamente, todo lo que quiero hacer es actualizar que BIT
columna (IsFoo
) en TABLE B
para que coincida con el valor correspondiente en TABLE A
para el mismo IdFoo.
tener en cuenta:
TABLE A
es en mi máquina localTABLE B
es en el servidor vivo
Obviamente tengo una copia de seguridad (fiable) de TABLE B
en mi máquina local que Necesito script contra, luego ejecutar el script en el servidor en vivo.
La tabla también tiene integridad referencial (otras columnas que no se muestran). Lo que significa que no puedo simplemente borrar todo en TABLE B
y hacer una inserción desde TABLE A
.
Esta secuencia de comandos será una vez. Así que no hay necesidad de hacer cosas como servidor vinculado, replicación, etc. Aprecio las respuestas, chicos. =)
EDIT:
Ok - así que he ido con la respuesta de Oleg (VS2010 datos de comparación). Rápido, fácil y funciona un encanto.
No decir que las otras respuestas son incorrectas. Aprecio todas las respuestas!
Cualquier respuesta dependería en gran medida del hecho si tiene un campo que se puede usar confiablemente para unir dos filas. –
La respuesta también depende de la frecuencia con la que necesita hacer esto y de la extensión de los datos. Si se trata de algo de una sola vez, puede usar el asistente de importación/exportación para transferir 'tabla b' a' tabla a'. Si desea que los cambios se reflejen de forma inmediata y continua, puede implementar la Replicación. – codingbadger