Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Sql server con LInked server Oracle : in un trigger non si possono ges...
giovedì 17 settembre 2009 - 16.54
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
gio 17 set 2009 - 16:54
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
5.625
messaggi | Data Invio:
gio 17 set 2009 - 22:43
>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
265
messaggi | Data Invio:
ven 18 set 2009 - 14:32
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
5.625
messaggi | Data Invio:
sab 19 set 2009 - 19:06
>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
265
messaggi | Data Invio:
dom 20 set 2009 - 20:35
Mè Tapino!
Ok, troveremo altre strade.
Ciao e grazie ancora per la chiaccherata! :o)
Torna su
Stanze Forum
Elenco Threads
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 !