SQL Server ed ALM su database


Il blog di Alessandro Alpi
Home Blogs | Home | Login | Contact | My Profile | RSS | About | Cerca

[SSIS] Gestire parametri di output di stored procedure

A volte è importante ottenere uno o più dati da stored procedure di SQL Server. Questa risposta si può ottenere scrivendo al loro interno istruzioni SELECT oppure anche valorizzando quei parametri che sono stati definiti come input output. Anche SSIS consente il colloquio con tali tipi di parametro, ma prima, come si definiscono? Qui di seguito un semplice esempio.. Partiamo con la configurazione dell'ambiente. Ipotizziamo di avere una tabella Utenti così formata: use tempdb;   --  
Leggi tutto il post...
Categoria: SSIS 2005 tips
giovedì, 17 mag 2007 Ore. 02.00

Scrivi un commento

Nome:
Blog:
E-Mail:
(l'indirizzo e-mail non verrà pubblicato, consente di essere avvertiti quando arrivano nuovi commenti a questo Post)
Codice:
Corpo:
Cookie:

Commenti

Autore: BrugolaInviato il: 07 nov 2007 - 11.17

E' possibile leggere o intercettare eventuali codici di errore restituiti da un SP?

Per esempio.. se la mia sp esegue degli inserimenti, potrebbe andare in errore a causa di una duplicazione di chiave.. è possibile da IS leggere l'errore senza mandare in blocco il flusso?


Grazie
Autore: alx_81Inviato il: 12 nov 2007 - 21.06
La cosa migliore sarebbe controllare l'inserimento prima di inserire con una bella EXISTS.
Comunque puoi gesire l'errore tramite SSIS:
- con Event Handlers che ti permettono, ad esempio di loggare l'errore e la sua descrizione
- con un constraint di completion o di error (la freccia blu o rossa, per intenderci)
In ognuno di questi due casi devi però fare attenzione al fatto che il padre, al primo errore (di default) fallisce. Quindi il container (ad esempio un ciclo o il SSIS stesso, deve avere come MaximumErrorCount il valore 0 (nessun errore lo blocca più a meno che non gestito dallo sviluppatore. Se non viene gestito, il ssis si comporta come una try catch con nulla nel catch).
Se si tratta di insert, ti consiglio di usare dei controlli preventivi, la EXISTS oppure una select in left join come sorgente di un dataflow, ecc..
Per controllare i duplicati, ti invito a dare un'occhiata ad un mio post precedene:
http://blogs.dotnethell.it/suxstellino/SSIS-Il-lookup-task-vantaggi-svantaggi-ed-ottimizzazione.__11180.aspx

Utilizzo il lookup per ricavare un valore. Tu potresti usarlo per controllare se il record esiste già, ed in caso negativo (freccia rossa) inserisci, in caso positivo (freccia verde) o tralasci o aggiorni con una update.
ciao!

Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003