Variabili in Integration Services

Nelle variabili vengono archiviati valori che possono essere utilizzati in fase di esecuzione da un pacchetto di SQL Server Integration Services e dai relativi contenitori, attività e gestori di eventi. Anche gli script nell'attività Script e nel componente script possono utilizzare le variabili. I vincoli di precedenza che definiscono la sequenza delle attività e dei contenitori in un flusso di lavoro possono utilizzare variabili quando le definizioni di vincolo includono espressioni.

Nei pacchetti di Integration Services è possibile utilizzare variabili per gli scopi seguenti:

  • Aggiornamento delle proprietà degli elementi dei pacchetti in fase di esecuzione. È ad esempio possibile impostare dinamicamente il numero di eseguibili simultanei consentiti in un contenitore Ciclo Foreach.

  • Inclusione di una tabella di ricerca in memoria. Un pacchetto può ad esempio eseguire un'attività Esegui SQL che carica una variabile con valori di dati.

  • Caricamento di variabili con valori di dati da utilizzare per specificare una condizione di ricerca in una clausola WHERE. Lo script in un'attività Script può ad esempio aggiornare il valore di una variabile utilizzata da un'istruzione Transact-SQL in un'attività Esegui SQL.

  • Caricamento di una variabile con un valore integer da utilizzare per il controllo del ciclo in un flusso di controllo di un pacchetto. È ad esempio possibile utilizzare una variabile nell'espressione di valutazione di un contenitore Ciclo For per controllare l'iterazione.

  • Popolamento di valori di parametri per istruzioni Transact-SQL in fase di esecuzione. Un pacchetto può ad esempio eseguire un'attività Esegui SQL e quindi utilizzare variabili per impostare dinamicamente i parametri in un'istruzione Transact-SQL.

  • Compilazione di espressioni che includono valori di variabili. La trasformazione Colonna derivata può ad esempio popolare una colonna con i risultati ottenuti moltiplicando il valore di una variabile per il valore di una colonna.

Integration Services supporta due tipi di variabili: variabili definite dall'utente e variabili di sistema. Le variabili definite dall'utente vengono definite dagli sviluppatori dei pacchetti, mentre quelle di sistema sono definite da Integration Services. È possibile creare un numero illimitato di variabili definite dall'utente, ma non è possibile creare ulteriori variabili di sistema.

Tutte le variabili, di sistema e definite dall'utente, possono essere utilizzate nelle associazioni di parametro utilizzate dall'attività Esegui SQL per mappare variabili a parametri nelle istruzioni SQL. Per ulteriori informazioni, vedere Attività Esegui SQL di SSIS e Utilizzo di parametri e di codici restituiti nell'attività Esegui SQL.

Nota

Per i nomi delle variabili di sistema e delle variabili definite dall'utente viene fatta distinzione tra maiuscole e minuscole.

È possibile creare variabili definite dall'utente per tutti i tipi di contenitori di Integration Services, ovvero pacchetti, contenitori Ciclo Foreach, contenitori Ciclo For, contenitori Sequenza, attività e gestori di eventi. Le variabili definite dall'utente sono membri della raccolta Variables del contenitore.

Se si crea il pacchetto utilizzando Progettazione SSIS, sarà possibile vedere i membri di una raccolta Variables nella cartella Variabili della scheda Esplora pacchetti di Progettazione SSIS. Nelle cartelle vengono elencate sia le variabili definite dall'utente che le variabili di sistema.

Nella configurazione delle variabili definite dall'utente è possibile:

  • Specificare un nome e una descrizione per la variabile.

  • Specificare uno spazio dei nomi per la variabile.

  • Indicare se la variabile genera un evento quando il relativo valore viene modificato.

  • Indicare se la variabile è in sola lettura o in lettura e scrittura.

  • Utilizzare il risultato della valutazione di un'espressione per impostare il valore della variabile.

  • Creare la variabile nell'ambito del pacchetto o di un oggetto del pacchetto, ad esempio un'attività.

  • Specificare il valore e il tipo di dati della variabile.

L'unica opzione configurabile delle variabili di sistema è quella che determina se debba essere generato o meno un evento quando il valore viene modificato.

Per ogni tipo di contenitore è disponibile un set di variabili di sistema specifico. Per ulteriori informazioni sulle variabili di sistema utilizzate dai pacchetti e dai relativi elementi, vedere Variabili di sistema.

Per ulteriori informazioni su scenari reali relativi all'utilizzo delle variabili, vedere Utilizzo di variabili nei pacchetti.

Spazio dei nomi

Integration Services offre due spazi dei nomi, User e System. Per impostazione predefinita, le variabili personalizzate appartengono allo spazio dei nomi User, mentre le variabili di sistema appartengono allo spazio dei nomi System. È possibile creare ulteriori spazi dei nomi per le variabili definite dall'utente e modificare il nome dello spazio dei nomi User, ma non è possibile modificare il nome dello spazio dei nomi System, né aggiungervi variabili o assegnare variabili di sistema a uno spazio dei nomi diverso.

Ambito

Le variabili vengono create nell'ambito di un pacchetto o nell'ambito di un contenitore, attività o gestore di evento di un pacchetto. Poiché il contenitore del pacchetto costituisce il livello principale della gerarchia dei contenitori, le variabili con ambito pacchetto sono variabili globali e possono essere utilizzate da tutti i contenitori del pacchetto. Analogamente, le variabili definite nell'ambito di un contenitore, quale Ciclo For, possono essere utilizzate da tutti i contenitori e le attività inclusi nel contenitore Ciclo For.

Se un pacchetto esegue altri pacchetti utilizzando l'attività Esegui pacchetto, sarà possibile utilizzare il tipo di configurazione Variabile pacchetto padre per rendere disponibili al pacchetto chiamato le variabili definite nell'ambito del pacchetto chiamante o dell'attività Esegui pacchetto. Per ulteriori informazioni, vedere Configurazioni pacchetto SSIS.

Valore

Il valore di una variabile definita dall'utente può essere un valore letterale o un'espressione. Le variabili includono opzioni per l'impostazione del valore e del relativo tipo di dati. Queste due proprietà devono essere compatibili. Non è ad esempio possibile utilizzare un valore stringa insieme a un tipo di dati integer.

Se la variabile è configurata in modo da essere valutata come espressione, sarà necessario specificare un'espressione. In fase di esecuzione l'espressione verrà valutata e la variabile verrà impostata sul risultato della valutazione. Se ad esempio una variabile utilizza l'espressione DATEPART("month", GETDATE()) , assumerà un valore equivalente al numero del mese della data corrente. È necessario utilizzare un'espressione valida che utilizza la sintassi della grammatica delle espressioni di SSIS. Quando si utilizza un'espressione con variabili, quest'ultima può includere valori letterali, nonché le funzioni e gli operatori previsti dalla grammatica delle espressioni, ma non può fare riferimento a colonne di un flusso di dati del pacchetto. Un'espressione può avere una lunghezza massima di 4000 caratteri. Per ulteriori informazioni, vedere Guida di riferimento alle espressioni in Integration Services.

Configurazione delle variabili

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di programmazione.

Per ulteriori informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, vedere Finestra Variabili.

Configurazione delle variabili a livello di programmazione

Per ulteriori informazioni sulle proprietà delle variabili e sull'impostazione di tali proprietà a livello di programmazione, vedere Variable.

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per informazioni sui download, gli articoli, gli esempi e i video Microsoft più recenti, nonché sulle soluzioni selezionate dalla community, visitare la pagina Integration Services su MSDN o Technet:

Per ricevere notifiche automatiche su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.