Sql server con LInked server Oracle : in un trigger non si possono ges...

giovedì 17 settembre 2009 - 16.54

AndreaKpr Profilo | Senior Member

Ciao a tutti ragazzi. Vi illustro la problematica:
Ho un Sql2005Express con un linked server collegato ad Oracle. (ho fatto tutto da solo, wow) :o)
Ora tramite il comando OpenQuery riesco a fare tutto ciò che serve per fare delle query su una tabella Oracle.
Il passo successivo era fare un trigger che all’inserimento di un record di un tabella effettuava una insert in Oracle… mi mancava 1 centimetro all’arrivo quando :

Vedete immagine allegata ...


893x192 34Kb


Avete qualche idea ???

lbenaglia Profilo | Guru

>Avete qualche idea ???

Ciao Andrea,

Anche se fosse stato possibile non è una bella idea eseguire transazioni distribuite da un trigger dato che allungheresti di molto la durata delle transazioni compromettendo di conseguenza la scalabilità dell'applicazione.
Un'idea potrebbe essere quella di definire un job schedulato ogni x tempo che in maniera asincrona vada a popolare la tabella Oracle.
Lato SQL Server potresti popolare una tabella tramite trigger con gli ID delle righe da andare ad inserire successivamente in Oracle eliminandole ad operazione conclusa.
Con SQL Server 2008 potresti valutare le nuove funzionalità di Change Data Capture e Change Tracking:
http://msdn.microsoft.com/en-us/library/bb522489.aspx
http://msdn.microsoft.com/en-us/library/cc280462.aspx

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

AndreaKpr Profilo | Senior Member


Ciao lbenaglia e grazie per la risposta.
Si, capisco cosa intendi con il fatto che non è una bella idea eseguire transazioni distribuite da un trigger.
Stavo pensando : ma c'è la possibilità di eseguire dei trigger NON in transazione ?

lbenaglia Profilo | Guru

>Stavo pensando : ma c'è la possibilità di eseguire dei trigger
>NON in transazione ?
No, un trigger viene eseguito nella transazione implicita generata dal comando DML (INSERT, UPDATE o DELETE).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

AndreaKpr Profilo | Senior Member


Mè Tapino!
Ok, troveremo altre strade.
Ciao e grazie ancora per la chiaccherata! :o)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5