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
Avviare codice .NET all'interno di un Trigger
mercoledì 25 gennaio 2012 - 17.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sandroid
Profilo
| Newbie
7
messaggi | Data Invio:
mer 25 gen 2012 - 17:33
Buonasera, sto lavorando su un database in SQL Server come DBA; i miei colleghi mi hanno fatto una richiesta particolare che non ho mai provato a fare. Mi spiego meglio: per verificare quando in una tabella viene fatto un update o un insert è stata creata una classe in C# su Visual Studio 2010 che si occupa di fare il polling sul DB per controllare a determinati intervalli di tempo l'evento. Ora per evitare questo spreco inutile di risorse mi è stato chiesto se posso inserire io un trigger in update\insert che possa scatenare un evento all'esterno di sql server.
Mi sono documentato un pò ovunque (principalmente su MSDN) e ho trovato diverse possibili soluzioni:
- implementazione di codice CLR all'interno del trigger. (Ma può effettivamente eseguire anche istruzioni esterne al db come quelle di cui ho bisogno io?)
- creazione di un service broker.
Se qualcuno può darmi anche solo un consiglio in merito ne sarei molto grato perché non ho la minima idea di quale strategia adottare.
Saluti,
Sandro Santucciu
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 25 gen 2012 - 17:49
>Buonasera, sto lavorando su un database in SQL Server come DBA;
>i miei colleghi mi hanno fatto una richiesta particolare che
>non ho mai provato a fare. Mi spiego meglio: per verificare quando
>in una tabella viene fatto un update o un insert è stata creata
>una classe in C# su Visual Studio 2010 che si occupa di fare
>il polling sul DB per controllare a determinati intervalli di
>tempo l'evento.
oddio.........
>Ora per evitare questo spreco inutile di risorse
>mi è stato chiesto se posso inserire io un trigger in update\insert
>che possa scatenare un evento all'esterno di sql server.
>Mi sono documentato un pò ovunque (principalmente su MSDN) e
>ho trovato diverse possibili soluzioni:
>- implementazione di codice CLR all'interno del trigger. (Ma
>può effettivamente eseguire anche istruzioni esterne al db come
>quelle di cui ho bisogno io?)
>- creazione di un service broker.
>Se qualcuno può darmi anche solo un consiglio in merito ne sarei
>molto grato perché non ho la minima idea di quale strategia adottare.
change data capture, secondo me è il top:
http://msdn.microsoft.com/it-it/library/bb522489
(v=sql.100).aspx
solo che non hai messo il tag della versione di sql server.. se non hai 2008 c'è da seguire altre vie..
>Saluti,
ciao
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
sandroid
Profilo
| Newbie
7
messaggi | Data Invio:
mer 25 gen 2012 - 17:58
Grazie per la risposta
si è vero sono un pò sbadato mi sono dimenticato di dire che sono su SQL Server 2008 R2.
Comunque ho scoperto che non erano a conoscenza del fatto che un trigger implicasse una transazione, così l'idea del trigger è tramontata; è rimasta quella del service broker oppure il classico polling com'è ora, oppure il Change Data Capture (che è la prima volta che lo sento nominare).
Grazie e scusate per gli errori ma sto fondendo!!
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 26 gen 2012 - 00:17
>Grazie per la risposta
si è vero sono un pò sbadato mi sono
>dimenticato di dire che sono su SQL Server 2008 R2.
>Comunque ho scoperto che non erano a conoscenza del fatto che
>un trigger implicasse una transazione, così l'idea del trigger
>è tramontata; è rimasta quella del service broker oppure il classico
>polling com'è ora, oppure il Change Data Capture (che è la prima
>volta che lo sento nominare).
>Grazie e scusate per gli errori ma sto fondendo!!
ma che errori? figurati.. il change data capture agisce a basso livello e ti traccia i cambiamenti sui record.
Si tratta di una funzionalità molto potente e nel tuo caso credo sia proprio l'utilizzo perfetto!
Facci sapere l'esperienza, visto che è ancora così poco usato e i più nemmeno sanno che esiste
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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 !