Query SQL para actualizar columnas de una tabla con datos de otra que se encuentra en distinta base de datos; Podemos realizar esto creando una tabla temporal en el destino con la información y realizar el update en base a esta.
Querys a utilizar
Query para realizar la copia a la tabla temporal
SELECT * INTO BDDestino.dbo.NombreTablaTemporal FROM BDFuente.dbo.TablaOrigen
Mas Información: Ver SQL – Copiar esquema de tabla y datos de una base de datos a otra
Query para actualizar
UPDATE TablaDestino SET TablaDestino.Columna1 = TablaOrigen.Columna1, TablaDestino.Columna2 = TablaOrigen.Columna2, TablaDestino.Columna3 = TablaOrigen.Columna3, ... etc ... FROM TablaOrigen, TablaDestino WHERE TablaOrigen.Campo = TablaDestino.Campo
Ejemplo:
Tengo dos bases de datos, el cual vamos a copiar la tabla completa a la base de datos destino.
Copiando
SELECT * INTO DarV2016.dbo.VT_ClientesTemp FROM DarV2010.dbo.VT_Clientes
Actualizando
Una vez terminado el proceso de copiado, actualizamos la informacion con el siguiente query.
Update VT_Clientes SET VT_Clientes.Nombre = VT_ClientesTemp.Nombre, VT_Clientes.Calle = VT_ClientesTemp.Calle, VT_Clientes.NumeroInterior = VT_ClientesTemp.NumeroInterior, VT_Clientes.NumeroExterior = VT_ClientesTemp.NumeroExterior, VT_Clientes.Ciudad = VT_ClientesTemp.Ciudad, VT_Clientes.CP = VT_ClientesTemp.CP, VT_Clientes.Estado = VT_ClientesTemp.Estado, VT_Clientes.Pais = VT_ClientesTemp.Pais, VT_Clientes.Entidad = VT_ClientesTemp.Entidad, VT_Clientes.RFC = VT_ClientesTemp.RFC, VT_Clientes.CURP = VT_ClientesTemp.CURP, VT_Clientes.PWD = VT_ClientesTemp.PWD, VT_Clientes.Colonia = VT_ClientesTemp.Colonia, VT_Clientes.ColoniaSagar = VT_ClientesTemp.ColoniaSagar, VT_Clientes.EstadoSagar = VT_ClientesTemp.EstadoSagar, VT_Clientes.Municipio = VT_ClientesTemp.Municipio, VT_Clientes.AvisarTLC = VT_ClientesTemp.AvisarTLC, From VT_Clientes, VT_ClientesTemp Where VT_Clientes.Numero = VT_ClientesTemp.Numero