Cuestión : Parte movible en la tabla de MySQL del disparador del parte movible de MSSQL

¡Hola allí!

I est ahora algunos días en solucionar el problema siguiente: el

I tiene un uso, ese funciona en una base de datos de MSSQL. Ahora otro uso, funcionando en un MySQL-Database.
Now - comparten un ciertos datos, que hace necesario transferir datos parciales entre dos el acercamiento de tables.

The ahora está, crear un disparador en la MSSQL-Tabla (t1) y escribir los datos del “parte movible” - tabla a la MySQL-Tabla (t2).
Remember: Necesito solamente un sistema de los datos parcial, adonde los nombres de columna en el T1 y el t2 varían. (ffieldms1-data será llenado a fieldmy1) el

MySQL-Database se fija como servidor ligado vía disparador konzeptual de ODBC 5.1 Driver.

My es el siguiente: class= " lineNumbers " >
1 del >



CREAR el myInsertTrigger del DISPARADOR
    EN [MSSQLDB]. [dbo]. [T1]
    PARA EL PARTE MOVIBLE, ACTUALIZACIÓN
    COMO
		DECLARAR el @ID internacional
		SELECCIONAR el @ID = (SELECCIONAR [la identificación] de insertado)
		IMPRIMIR el @ID
		SI (>= 5000 DEL @ID) Y (@ID < 5999)
        COMENZAR
		FIJAR XACT_ABORT ENCENDIDO
		COMENZAR LA TRANSACCIÓN
			INSERTAR EN 
				OPENQUERY ([MYSQL-REMOTE], '
				SELECCIONAR fieldmy1, fieldmy2
				A PARTIR de la t1')
			SELECCIONAR fieldms1, fieldms2
			De insertado

			CANCELACIÓN DE [MSSQLDB]. [dbo]. [T1] DONDE [identificación] = @ID
		CONFIAR LA TRANSACCIÓN
		El class= de END


When es (e.g. con una actualización de la identificación a la gama antedicha) operación de siguiente ejecutada del occurs

The del error no podría ser realizado porque el abastecedor VIEJO “MSDASQL” del DB no podía comenzar una transacción distribuida. ayuda específica de la necesidad del supported

I de la característica opcional del
[MYSQL] [conductor de ODBC 5.1] no - el google saca a colación una masa de hilos de rosca, yo no encontró que el one.

If alguien sabe, cómo configurar la mssql-escritura, el servidor o el mysql-server

THANK YOU del mssql class= del

Respuesta : Parte movible en la tabla de MySQL del disparador del parte movible de MSSQL

Si usted va a hacer esto en un disparador, estoy apostando que su razón de conducción es que usted no tiene control del cliente que publica la declaración del PARTE MOVIBLE.

Si éste es el caso, sugeriría que usted cree una nueva tabla - llamarla MySQLQueue e insertar los datos selectivamente que se empujan en esta tabla, en esa tabla de la coleta, después utilizan un trabajo que la funcione y empuje encima en MySQL.

Si usted necesita ciertos expedientes suprimidos de su tabla original usted podría también hacer eso dentro de su disparador, pero acabo de sugerir usar EN VEZ de disparador para hacer el trabajo.

Usar este acercamiento no trabará sus partes movibles en su tabla original mientras que usted intenta sincronizar con un servidor alejado de MySQL.  , Sin embargo, introduce un cierto estado latente basado en la frecuencia que el trabajo procesa su coleta, pero se procesan asincrónico por lo menos.

Mientras que los disparadores son una herramienta muy de gran alcance, pueden traer fácilmente un sistema a sus rodillas.  Utilizarlos con la precaución extrema y SIEMPRE muy juicioso.
Otras soluciones  
 
programming4us programming4us