Questione : Inserto nella Tabella di MySQL dall'innesco dell'inserto di MSSQL

Ciao là!

I ora alcuni giorni sulla soluzione del problema seguente: il

I ha un'applicazione, quella funziona su una base di dati di MSSQL. Ora un'altra applicazione, funzionante su un MySQL-Database.
Now - ripartono alcuni dati, che lo rendono necessario trasferire i dati parziali fra due il metodo di tables.

The sono ora, generare un innesco sulla MSSQL-Tabella (t1) e redigere i dati “dall'inserto„ - Tabella (t2) al MySQL-Table.
Remember: Ho bisogno soltanto di un insieme dei dati parziale, dove i nomi di colonna sul T1 e sul T2 variano. (ffieldms1-data sarà riempito a fieldmy1) il

MySQL-Database è installato come assistente collegato via l'innesco konzeptual di ODBC 5.1 Driver.

My è il seguire: class= " lineNumbers " >
1 del >



GENERARE il myInsertTrigger di INNESCO
    SU [MSSQLDB]. [dbo]. [T1]
    PER L'INSERTO, AGGIORNAMENTO
    AS
		DICHIARARE il @ID int
		SELEZIONARE il @ID = (SELEZIONARE [identificazione] A PARTIRE dall'inserito da)
		STAMPARE il @ID
		SE (>= 5000 DEL @ID) E (@ID < 5999)
        COMINCIARE
		REGOLARE XACT_ABORT SOPRA
		COMINCIARE LA TRANSAZIONE
			INSERIRE IN 
				OPENQUERY ([MYSQL-REMOTE], '
				SELEZIONARE fieldmy1, fieldmy2
				Da t1')
			SELEZIONARE fieldms1, fieldms2
			Dall'inserito da

			CANCELLAZIONE DA [MSSQLDB]. [dbo]. [T1] DOVE [identificazione] = @ID
		COMMETTERE LA TRANSAZIONE
		Il class= di END


When è (per esempio con un aggiornamento dell'identificazione a gamma di cui sopra) funzionamento seguente eseguito del occurs

The di errore non potrebbe essere effettuato perché il fornitore OLE “MSDASQL„ di DB non poteva cominciare una transazione distribuita. aiuto specifico di bisogno del supported

I della caratteristica facoltativa del
[MYSQL] [driver di ODBC 5.1] non - il google porta in su la massa dei filetti, io non ha trovato che il one.

If qualcuno sa, come configurare lo mssql-scritto, l'assistente del mssql o il mysql-server

THANK YOU class= del

Risposta : Inserto nella Tabella di MySQL dall'innesco dell'inserto di MSSQL

Se stiate andando fare questo in un innesco, sto scommettendo che il vostro motivo movente è che non avete controllo del cliente che pubblica la dichiarazione dell'INSERTO.

Se questo è il caso, suggerirei che generaste una nuova tabella - denominarla MySQLQueue ed inserire i dati selettivamente che sono spinti in questa tabella, in quella tabella della coda, quindi usano un lavoro che la fa funzionare e spinge sopra in MySQL.

Se avete bisogno di determinate annotazioni cancellate dalla vostra tabella originale potreste anche fare quello all'interno del vostro innesco, ma suggerirei appena usando ANZICHÉ l'innesco per fare il lavoro.

Using questo metodo non chiuderà i vostri inserti a chiave sulla vostra tabella originale mentre provate a sincronizzare con un assistente a distanza di MySQL.  , Tuttavia, introduce un certo stato latente basato sulla frequenza che il lavoro proceda la vostra coda, ma sono procedati asincrono almeno.

Mentre gli inneschi sono un attrezzo molto potente, possono portare facilmente un sistema alle relative ginocchia.  Usarli con l'attenzione estrema e SEMPRE molto giudiziosamente.
Altre soluzioni  
 
programming4us programming4us