Trigger per inviare i dati inseriti

venerdì 06 agosto 2010 - 10.44
Tag Elenco Tags  SQL Server 2005  |  SQL Server Express

Samb1985 Profilo | Junior Member

E' possibile su sql server 2005 (express) definire un trigger su una tabella, che ad ogni insert di un nuovo record invia i dati del record inserito su un altro database (istanza su un altra macchina) oppure va a scrivere i dati su un file di testo o xml ?
--------------------------------------------------------------------------------------

Ogni popolo ha il governo che si merita...

lbenaglia Profilo | Guru

>E' possibile su sql server 2005 (express) definire un trigger
>su una tabella, che ad ogni insert di un nuovo record invia i
>dati del record inserito su un altro database (istanza su un
>altra macchina) oppure va a scrivere i dati su un file di testo
>o xml ?
Si ma è una pessima idea dato che ammazzeresti le prestazioni.
Ti ricordo che un trigger gira nella transazione aperta dal relativo comando DML (se non ne esiste una esplicita a monte), quindi manterresti i lock attivi per tutta la durata del trigger stesso, creando situazioni di attesa o peggio deadlock.
Per eseguire questa attività considera soluzioni asincrone come job schedulati, log shipping o database mirroring. Putroppo le repliche non sono utilizzabili con la Express Edition (funge solo da subscriber).

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

Samb1985 Profilo | Junior Member


>Per eseguire questa attività considera soluzioni asincrone come
>job schedulati, log shipping o database mirroring. Putroppo le
>repliche non sono utilizzabili con la Express Edition (funge
>solo da subscriber).

Su versioni come standard o enterprise, per quanto riguarda le repliche cosa è possibile implementare per inviare i dati ad un altra istanza o su un file (txt o xml) ?

--------------------------------------------------------------------------------------

Ogni popolo ha il governo che si merita...

lbenaglia Profilo | Guru

>Su versioni come standard o enterprise, per quanto riguarda le
>repliche cosa è possibile implementare per inviare i dati ad
>un altra istanza o su un file (txt o xml) ?
Sui Books Online troverai qualche centinaio di pagine dedicate alle repliche
Per quanto concerne la scrittura su file, puoi eseguire questa operazione in modo asincrono utilizzando bcp (in formato nativo, ANSI o UNICODE).
Se vuoi esportare file (sempre in modo asincrono) in formato XML puoi scriverti una piccola sp CLR:
http://blogs.dotnethell.it/lorenzo/Come-esportare-su-file-un-result-set-in-formato-XML-con-SQL-Server-2005__6302.aspx

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

Samb1985 Profilo | Junior Member


>Per eseguire questa attività considera soluzioni asincrone come
>job schedulati, log shipping o database mirroring. Putroppo le
>repliche non sono utilizzabili con la Express Edition (funge
>solo da subscriber).

Sulla Express ho visto che anche job schedulati, log shipping e database mirroring non sono inclusi, oltre alle repliche.
Quali meccanismi possono essere usati sulla Express per fare backup o sincronizzazione? se ce ne sono...

--------------------------------------------------------------------------------------

Ogni popolo ha il governo che si merita...

lbenaglia Profilo | Guru

>Quali meccanismi possono essere usati sulla Express per fare
>backup o sincronizzazione? se ce ne sono...
Puoi schedulare i tuoi comandi utilizzando lo scheduler di Windows, richiamando l'utility sqlcmd ed i relativi comandi T-SQL (eventualmente memorizzati in un file .sql).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
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