Domanda

È possibile creare un trigger che non sarà presente in una transazione?

Desidero aggiornare i dati su un server collegato con un trigger ma a causa di problemi con il firewall non possiamo creare una transazione distribuita tra i due server.

È stato utile?

Soluzione

Ciò che probabilmente desideri è una combinazione di una coda che contenga aggiornamenti per il server collegato e un processo che legga i dati dalla coda e aggiorni il server remoto.Il trigger inserirà quindi un messaggio nella coda come parte della normale transazione.Questi dati verranno letti dal processo separato e utilizzati per aggiornare il server remoto.La logica sarà necessaria nel processo per gestire gli errori (ed eventualmente i nuovi tentativi).

La coda può essere implementata con una o più tabelle.

Altri suggerimenti

So che non è utile, quindi probabilmente riceverò un downvoting per questo, ma in realtà la soluzione è risolvere il problema del firewall.

Penso che se utilizzi server remoti (non collegati) (che non sono l'opzione preferita al giorno d'oggi), puoi utilizzare SET REMOTE_PROC_TRANSACTIONS OFF per impedire l'uso di DTC per transazioni remote, che potrebbe fare la cosa giusta qui.Ma questo probabilmente non ti aiuta comunque con un server collegato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top