Utilizzo di variabili nei pacchetti
Le variabili sono un'aggiunta utile e flessibile ai pacchetti di Integration Services; possono fornire comunicazioni tra gli oggetti nel pacchetto e tra i pacchetti padre e figlio. Le variabili possono essere utilizzate anche in espressioni e script.
Variabili definite dall'utente e variabili di sistema
Integration Services fornisce variabili di sistema e supporta variabili definite dall'utente. Quando si crea un nuovo pacchetto, aggiungere un contenitore o un'attività a un pacchetto oppure creare un gestore eventi, Integration Services include un set di variabili di sistema per il contenitore. Le variabili di sistema contengono informazioni utili su pacchetto, contenitore, attività o gestore dell'evento. Ad esempio, in fase di esecuzione la variabile di sistema MachineName include il nome del computer su cui è in esecuzione il pacchetto mentre la variabile StartTime include l'ora di inizio dell'esecuzione del pacchetto. Le variabili di sistema sono di sola lettura. Per altre informazioni, vedere Variabili di sistema.
È possibile creare variabili definite dall'utente e utilizzarle quindi nei pacchetti. Le variabili definite dall'utente possono essere usate in molti modi in SSIS: negli script; nelle espressioni utilizzate dai vincoli di precedenza, il contenitore Ciclo For, la trasformazione Colonna derivata e la trasformazione Suddivisione condizionale; e nelle espressioni di proprietà che aggiornano i valori delle proprietà.
È possibile, ad esempio, includere una variabile definita dall'utente nella condizione di valutazione per il contenitore Ciclo For. È inoltre possibile eseguire il mapping tra il valore della raccolta di enumeratori di un contenitore Ciclo Foreach e una variabile e, se un'attività Esegui SQL utilizza un'istruzione SQL con parametri, è possibile eseguire il mapping tra parametri dell'istruzione e variabili. Per altre informazioni, vedere Variabili di Integration Services (SSIS).
Scenari di utilizzo delle variabili
Nei pacchetti Integration Services le variabili vengono usate in diversi modi. Durante lo sviluppo di un pacchetto vengono in genere aggiunte variabili definite dall'utente allo scopo di implementare la flessibilità e la gestibilità richieste dalla soluzione. A seconda dello scenario, vengono comunemente utilizzate anche variabili di sistema.
Espressioni di proprietà Usano le variabili per specificare i valori nelle espressioni di proprietà che impostano gli oggetti e le proprietà dei pacchetti. L'espressione SELECT * FROM @varTableName
, ad esempio, include la variabile varTableName
che aggiorna l'istruzione SQL eseguita da un'attività Esegui SQL. L'espressione DATEPART("d", GETDATE()) == 1? @[User::varPackageFirst]:@[User::varPackageOther]
" aggiorna il pacchetto eseguito dall'attività Esegui pacchetto, eseguendo il pacchetto specificato nella variabile varPackageFirst
il primo giorno del mese e il pacchetto specificato nella variabile varPackageOther
in altri giorni. Per altre informazioni, vedere Utilizzo delle espressioni di proprietà nei pacchetti.
Espressioni del flusso di dati Usano le variabili per specificare valori nelle espressioni usate dalle trasformazioni Colonna derivata e Suddivisione condizionale per popolare le colonne o per indirizzare le righe di dati nell'output di altre trasformazioni. L'espressione @varSalutation + LastName
, ad esempio, concatena il valore della variabile VarSalutation
e della colonna LastName
. L'espressione Income < @HighIncome
indirizza in un output le righe di dati in cui il valore della colonna Income
è minore del valore della variabile HighIncome
. Per altre informazioni, vedere Trasformazione Colonna derivata, Trasformazione Suddivisione condizionale, e Espressioni di Integration Services (SSIS).
Espressioni di vincoli di precedenza Forniscono i valori da usare nei vincoli di precedenza per determinare se l'eseguibile soggetto al vincolo verrà eseguito o meno. Le espressioni possono essere utilizzate insieme al risultato di un'esecuzione (esito positivo, esito negativo, completamento) o in sostituzione di tale risultato. Se ad esempio l'espressione @varMax > @varMin
restituisce true
, l'eseguibile verrà eseguito. Per altre informazioni, vedere Aggiunta di espressioni ai vincoli di precedenza.
Parametri e codici restituiti Forniscono i valori ai parametri di input o archiviano i valori dei parametri di output e i codici restituiti. A tale scopo viene eseguito il mapping delle variabili ai parametri e ai valori restituiti. Se ad esempio si imposta la variabile varProductId
su 23 e si esegue l'istruzione SQL SELECT * from Production.Product WHERE ProductID = ?
, la query recupera il prodotto il cui ProductID
ha valore 23. Per altre informazioni, vedere Attività Esegui SQL e Parametri e codici restituiti nell'attività Esegui SQL.
Espressioni del Ciclo For Forniscono i valori da usare nell'inizializzazione, la valutazione e l'assegnazione di espressioni del Ciclo For. Se ad esempio la variabile varCount
è uguale a 2 e varMaxCount
è uguale a 10, l'espressione di inizializzazione è @varCount
, quella di valutazione è @varCount < @varMaxCount
e quella di assegnazione è @varCount =@varCount +1
, pertanto il ciclo si ripete 8 volte. Per altre informazioni, vedere Contenitore Ciclo For.
Configurazioni Variabile pacchetto padre Passano i valori dai pacchetti padre ai pacchetti figlio. Queste configurazioni consentono ai pacchetti figlio di accedere alle variabili del pacchetto padre. Se ad esempio il pacchetto figlio deve utilizzare la stessa data del pacchetto padre, sarà possibile definire un tipo di configurazione Variabile pacchetto padre che specifichi un set di variabili tramite la funzione GETDATE nel pacchetto padre. Per altre informazioni, vedere Attività Esegui pacchetto e Configurazioni di pacchetto.
Attività Script e componente script Forniscono un elenco di variabili di sola lettura e di lettura/scrittura all'attività Script o al componente script, aggiornano le variabili di lettura/scrittura all'interno dello script, quindi usano i valori aggiornati all'interno o all'esterno dello script. Ad esempio, nel codice numberOfCars = CType(Dts.Variables("NumberOfCars").Value, Integer)
la variabile di script numberOfCars
viene aggiornata dal valore della variabile NumberOfCars
. Per altre informazioni, vedere Utilizzo di variabili nell'attività Script.
Configurazioni e variabili
Per aggiornare le variabili in modo dinamico, è possibile creare configurazioni per le variabili, distribuirle insieme al pacchetto e quindi aggiornare i valori delle variabili nel file di configurazione quando si distribuiscono i pacchetti. In fase di esecuzione il pacchetto utilizza i valori di variabile aggiornati. Per altre informazioni, vedere Creazione di configurazioni dei pacchetti.