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
Trigger su database diversi
venerdì 07 novembre 2008 - 14.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Teech
Profilo
| Expert
573
messaggi | Data Invio:
ven 7 nov 2008 - 14:45
Salve a tutti.
Ho la seguente fattispecie: degli utenti usano un gestionale che scrive i propri dati su un DB in SQL2005EE. Gli utenti inseriscono degli ordini cliente ed io devo creare delle procedure che lavorano appunto sugli ordini. Il problema è che quando gli utenti trasformano gli ordini in movimenti di magazzino (DDT, Fatture accompagnatorie, ecc...) gli ordini vengono cancellati dalla relativa tabella del database e spostati in un'altra attraverso delle logiche del gestionale.
Per lavorare sugli ordini pensavo di generarmi dei trigger che in fase di Insert ed in fase di Update delle tabelle del gestionale operavano una copia dei dati (copia parziale dei dati) su un database diverso (sempre in SQL2005EE). Questo ovviamente considerando il fatto che posso inserire i miei trigger nel database del gestionale (se posso farlo "monitorando" dal mio database i dati del database del gestionale sarebbe ottimo).
Premetto che non ho mai fatto un trigger in vita mia e quindi ho problemi anche a reperire informazioni (non so cosa cercare esattamente) vi chiedo se è possibile creare un trigger che scrive su un database diverso da quello che contiene il trigger stesso (potrebbe essere un database anche su un'istanza diversa o addirittura su un server diverso). Se è possibile (e non ho pensato ad una boiata pazzesca), potete darmi una dritta su che documentazione cercare e dove orientarmi? (qualche parola chiave da mettere in Google o nella ricerca dei BOL).
Grazie!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 7 nov 2008 - 16:15
>Per lavorare sugli ordini pensavo di generarmi dei trigger che
>in fase di Insert ed in fase di Update delle tabelle del gestionale
>operavano una copia dei dati (copia parziale dei dati) su un
>database diverso (sempre in SQL2005EE). Questo ovviamente considerando
>il fatto che posso inserire i miei trigger nel database del gestionale
>(se posso farlo "monitorando" dal mio database i dati del database
>del gestionale sarebbe ottimo).
Ciao Maurizio,
Direi che la soluzione che proponi può andare bene dato che immagino che gli inserimenti e le modifiche agli ordini non siano tali da compromettere le prestazioni dell'applicativo a causa della presenza dei triggers (che ti ricordo mantengono aperta la transazione per tutta la loro durata).
Definisci un nuovo db sulla medesima istanza, definisci uno user account abbinato alla login utilizzata dall'applicativo per accedere al suo db, definisci le tabelle che ti servono, assegna le permission allo user account (eventualmente rendilo dbo) e richiama tali tabelle nei triggers utilizzando il three-part name (database.schema.tabella).
>Premetto che non ho mai fatto un trigger in vita mia e quindi
>ho problemi anche a reperire informazioni (non so cosa cercare
>esattamente) vi chiedo se è possibile creare un trigger che scrive
>su un database diverso da quello che contiene il trigger stesso
>(potrebbe essere un database anche su un'istanza diversa o addirittura
>su un server diverso). Se è possibile (e non ho pensato ad una
>boiata pazzesca), potete darmi una dritta su che documentazione
>cercare e dove orientarmi? (qualche parola chiave da mettere
>in Google o nella ricerca dei BOL).
Beh, direi che "trigger" è la parola da cercare
http://msdn.microsoft.com/en-us/library/ms189799.aspx
>Grazie!!!
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Teech
Profilo
| Expert
573
messaggi | Data Invio:
ven 7 nov 2008 - 17:52
Intanto grazie
Da quello che ho capito posso lavorare in questo modo solo utilizzando DB che si trovano sulla stessa istanza ed utilizzare il three part name (per me più che sufficiente adesso). Se volessi però usare istanze diverse o server diversi allora devo comunque utilizzare i trigger ma integrando delle chiamate al CLR o utilizzare i linked server, giusto?
Per sapere cosa cercare era dettato semplicemente dal fatto che non avevo trovato nulla per i trigger su DB diversi (tutti esempi e disquisizioni sugli stessi DB), ma la soluzione è sempre quella più semplice... Mi piace complicarmi la vita anche se non lo faccio apposta
Grazie mille ancora!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole
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 !