Lanciare un eseguibile da Trigger o store procedure

domenica 18 ottobre 2009 - 23.24

Stroke Profilo | Junior Member

Ciao a tutti
é possibile lanciare un eseguibile (.exe) da un un trigger o da una store procedure?
Ho inserito un agente temporizzato che esegue determinati controlli, all'avvento di questi controlli inserisce una nuova riga di risultati in una tabella, quando la riga viene eseguita avrei bisogno di scatenare eventi che risiedono in un programma esterno al database, è possibile? e Come?
Grazie a chi mi risponderà.

Furio
http://www.opsi.ws

alx_81 Profilo | Guru

>Ciao a tutti
Ciao

>é possibile lanciare un eseguibile (.exe) da un un trigger o da una store procedure?
Sì, non è una prassi molto simpatica, ma puoi.

>Ho inserito un agente temporizzato che esegue determinati controlli,
>all'avvento di questi controlli inserisce una nuova riga di risultati
>in una tabella, quando la riga viene eseguita avrei bisogno di
>scatenare eventi che risiedono in un programma esterno al database,
>è possibile? e Come?
Secondo me puoi ragionare "dalla parte opposta" ovvero pensare ad un servizio (anche una console application) che continua a controllare la tabella che vai a gestire. Se si crea la riga che ti aspetti scateni l'evento di esecuzione del metodo che devi lanciare. In poche parole, invece che pilotare da un agente di sql server, fai un sevizio che fa quello che fa ora il tuo agente, e poi, quando ti arriva ciò che ti aspetti è molto più semplice gestire l'evento, senza lanciare da database eseguibili, che non è mai la prassi migliore da seguire. Che ne pensi?

>Grazie a chi mi risponderà.
di nulla!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

carloalberto Profilo | Junior Member

vedi se questi due esempi ti sono di aiuto :

comado del del dos
EXEC master..xp_cmdshell 'del c:\Testo.txt'
esegue un batch
EXEC master..xp_cmdshell 'invia.bat'

messi all'interno di una strore e programmata a leggere la tua tabella dovresti arrivare a soluzione...

ciao

Stroke Profilo | Junior Member

@Alessandro avevo pensato ad un servizio windows, ma siccome ho già un sqlagent che ogni minuto fa una analisi per scatenare degli eventi e questi eventi inseriscono con ogni probabilità uno o due record al giorno (ma non so quando ) e dovendo attivare immediatamente delle procedure esecutive, mi sembrava molto più comodo attivare un trigger after insert che non avere un servizio che replichi il lavoro dell'agent che oltremodo avrebb anche la necessità di memorizzare l'ultimo inserimento per verificare se ne sono avvenuti di nuovi.
@CarloAlberto non conoscevo questo comando, da una prima analisi sembra la soluzione giusta.
Grazie a tuti e due.
ciao
Furio
http://www.opsi.ws
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