Pergunta : Inserção na tabela de MySQL do disparador da inserção de MSSQL

Olá! lá!

I am agora alguns dias em resolver o seguinte problema: o

I tem uma aplicação, essa funciona em uma base de dados de MSSQL. Agora uma outra aplicação, funcionando em um MySQL-Database.
Now - compartilham de alguns dados, que fazem necessário transferir dados parciais entre dois a aproximação de tables.

The são agora, criar um disparador na MSSQL-Tabela (t1) e redigir os dados da “inserção” - tabela à MySQL-Tabela (t2).
Remember: Eu preciso somente um jogo de dados parcial, aonde os nomes de coluna no T1 e no t2 variam. (ffieldms1-data será enchido a fieldmy1) o

MySQL-Database setup como o usuário lig através do disparador konzeptual de ODBC 5.1 Driver.

My é o seguimento: class= " lineNumbers " >
1 do >



CRIAR o myInsertTrigger do DISPARADOR
    EM [MSSQLDB]. [dbo]. [T1]
    PARA A INSERÇÃO, ATUALIZAÇÃO
    COMO
		DECLARAR o @ID int
		SELECIONAR o @ID = (SELECIONAR [a identificação] do introduzido)
		IMPRIMIR o @ID
		SE (>= 5000 DO @ID) E (@ID < 5999)
        COMEÇAR
		AJUSTAR XACT_ABORT SOBRE
		COMEÇAR A TRANSAÇÃO
			INTRODUZIR EM 
				OPENQUERY ([MYSQL-REMOTE], '
				SELECIONAR fieldmy1, fieldmy2
				De t1')
			SELECIONAR fieldms1, fieldms2
			Do introduzido

			SUPRESSÃO DE [MSSQLDB]. [dbo]. [T1] ONDE [identificação] = @ID
		COMETER A TRANSAÇÃO
		O class= de END


When é (por exemplo com uma atualização da identificação à escala acima) operação de seguimento executada do occurs

The do erro não poderia ser executado porque o fornecedor VELHO “MSDASQL” do DB era incapaz de começar uma transação distribuída. ajuda específica da necessidade do supported

I da caraterística opcional do
[MYSQL] [excitador de ODBC 5.1] não - o google traz acima uma massa das linhas, mim não encontrou que o one.

If alguém sabe, como configurar o mssql-certificado, o usuário do mssql ou o mysql-server

THANK YOU class= do

Resposta : Inserção na tabela de MySQL do disparador da inserção de MSSQL

Se você está indo fazer este em um disparador, eu estou apostando que sua razão de condução é que você não tem o controle do cliente que emite a indicação da INSERÇÃO.

Se este é o caso, eu sugeriria que você criasse uma tabela nova - chamá-la MySQLQueue e introduzir os dados seletivamente que são introduzidos nesta tabela, nessa tabela da fila, a seguir usam um trabalho que a funcione e introduza sobre em MySQL.

Se você precisa determinados registros suprimidos de sua tabela original você poderia igualmente fazer aquele dentro de seu disparador, mas eu apenas sugeriria a utilização EM VEZ do disparador para fazer o trabalho.

Using esta aproximação não travará suas inserções em sua tabela original quando você tentar sincronizar com um usuário remoto de MySQL.  , Entretanto, introduz alguma latência baseada na freqüência que o trabalho processa sua fila, mas são processados assìncrona pelo menos.

Quando os disparadores forem uma ferramenta muito poderosa, podem facilmente trazer um sistema a seus joelhos.  Usá-los com cuidado extremo e SEMPRE muito judiciosa.
Outras soluções  
 
programming4us programming4us