Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/06/2016, 06:23
Azor
 
Fecha de Ingreso: febrero-2014
Ubicación: España
Mensajes: 60
Antigüedad: 10 años, 2 meses
Puntos: 1
Pregunta Openquery y merge

Buenos días a todos!

En un servidor de SQL Server2012 tengo vinculado/linkado uno de MySql. Intento actualizar datos desde SQLServer hacia Mysql con merge, de la siguiente forma:

Código SQL:
Ver original
  1. MERGE INTO OPENQUERY(SERVIDOR_MYSQL, 'SELECT campo1, campo2, campo3, campo4 FROM [SRV_VINCULADO].[bd].[tabla1]') AS DESTINO
  2. USING [BD_ORIGEN].[dbo].[tabla1] AS ORIGEN
  3.     ON (ORIGEN.campo1 = DESTINO.campo1 AND ORIGEN.campo2 = DESTINO.campo2)
  4. WHEN MATCHED THEN UPDATE
  5.     SET DESTINO.campo3 = ORIGEN.campo3,
  6.         DESTINO.campo4 = ORIGEN.campo4
  7. WHEN NOT MATCHED THEN INSERT
  8.     VALUES(ORIGEN.campo1,
  9.            ORIGEN.campo2,
  10.            ORIGEN.campo3,
  11.            ORIGEN.campo4)
  12. WHEN NOT MATCHED BY SOURCE THEN DELETE;

El problema está en el alias 'DESTINO', pues no me lo reconoce y no puedo hacer el update.

He probado varias opciones para intentar solucionarlo como ésto
Código SQL:
Ver original
  1. MERGE INTO OPENQUERY(SERVIDOR_MYSQL, 'SELECT campo1, campo2, campo3, campo4 FROM tabla1') AS DESTINO
  2. MERGE INTO OPENQUERY(SERVIDOR_MYSQL, 'SELECT campo1, campo2, campo3, campo4 FROM [SRV_VINCULADO].[tabla1]') AS DESTINO

pero nada , por favor alguien me podría ayudar?

Saludos y gracias

Última edición por Azor; 20/06/2016 a las 07:54