Generazione di un Guid nell'ambito SSIS
Per l'uso di un campo GUID in una tabella è necessario
richiamare in fase di inserimento o update la funzione di SQL NewID() per avere la generazione dell'identificatore univoco,
Ma a volte non si vuole utilizzare appositamente un blocco SQL nel corso di un dataflow per questa operazione, quindi alternativamente si può passare attraverso
uno script sempre all'interno del dataflow, usando il seguente codice:
Dim gATD As System.Guid
gATD = System.Guid.NewGuid()
il quale dichiara un'oggetto di tipo System.Guid e lo istanzia attraverso la chiamata System.Guid.NewGuid().
Per assegnarlo poi alla colonna GUIDATD, dichiarata di tipo unique identifier [DT_GUID], si esegue
Row.GUIDATD = gATD
naturalmente in precedenza se Row.GUIDATD era fra le possibili colonne di input, si imposta la modalità READWRITE nella sezione Inputcolumn, altrimenti basta dichiararla con il giusto tipo tra le colonne di Output (unique identifier [DT_GUID]).
ciao ciao
Nota sul Mapping delle Variabili
oggi vorrei appuntare un piccolo problema che ho affrontato:
bisognava data una query tipo :
select Id, res from logfiles where namefile = ?
(usando una connessione tipo OLEDB )
si mappano le variabili in input nel seguente modo:
Var direction data_Type VarName
NomeFile INPUT VARCHAR 0
il Result Set invece è
ResultName Variablename
0 Id
1 Result
ATTENZIONE: l'indice dato alle variabili di ritorno riparte da 0 in quanto sono insiemi separati.
Inoltre la query è stata modificata nel seguente modo:
select CONVERT(INTEGER,Id) AS IDINT, res from logfiles where namefile = ?
in quanto i tipi disponibili per le variabili dell'SSIS è int32 o int16 e giù di lì,
mentre la colonna ID nel db è di tipo NUMERIC(18,0),
il cast in questo caso non è automatico, quindi necessita un'operazione del genere.
Angela