Configurazioni di pacchetto

In SQL ServerIntegration Services sono disponibili configurazioni di pacchetto che è possibile utilizzare per aggiornare i valori delle proprietà in fase di esecuzione. Una configurazione è una coppia proprietà/valore che viene aggiunta a un pacchetto completo. In genere, si crea un pacchetto, si impostano le proprietà per gli oggetti di pacchetto durante lo sviluppo del pacchetto e quindi si aggiunge la configurazione al pacchetto. Quando il pacchetto viene eseguito, ottiene i nuovi valori della proprietà dalla configurazione. Utilizzando ad esempio una configurazione, è possibile modificare la stringa di connessione di una gestione connessione o aggiornare il valore di una variabile.

Le configurazioni di pacchetto offrono i vantaggi seguenti:

  • Le configurazioni semplificano lo spostamento di pacchetti dall'ambiente di sviluppo all'ambiente di produzione. Tramite una configurazione è ad esempio possibile aggiornare il percorso di un file di origine o modificare il nome di un database o di un server.

  • Le configurazioni risultano utili per la distribuzione di pacchetti in più server diversi. La configurazione di ogni pacchetto distribuito può ad esempio includere una variabile che specifica un diverso valore di spazio su disco. Se lo spazio su disco disponibile non soddisfa tale valore, il pacchetto non verrà eseguito.

  • Le configurazioni rendono i pacchetti più flessibili. Una configurazione, ad esempio, può aggiornare il valore di una variabile utilizzata in un'espressione di proprietà.

Integration Services supporta metodi di archiviazione delle configurazioni di pacchetto diversi, ad esempio file XML, tabelle di un database di SQL Server e variabili di ambiente e di pacchetto.

Ogni configurazione corrisponde a una coppia proprietà/valore. Il file di configurazione XML e i tipi di configurazione di SQL Server possono includere più configurazioni.

Le configurazioni vengono incluse quando si crea un'utilità di distribuzione per l'installazione di pacchetti. Quando si installano i pacchetti, le configurazioni possono venire aggiornate in un passaggio dell'installazione.

[!NOTA]

Per acquisire maggiore familiarità con i concetti spiegati in questa sezione, vedere Esercitazione: Distribuzione di pacchetti e Lezione 3: Aggiunta delle configurazioni dei pacchetti in Esercitazione: Creazione di un pacchetto ETL semplice.

Informazioni sull'applicazione delle configurazioni di pacchetto in fase di esecuzione

Quando si utilizza l'utilità della riga di comando dtexec (dtexec.exe) per eseguire un pacchetto distribuito, le configurazioni di pacchetto vengono applicate due volte, ovvero prima e dopo l'applicazione delle opzioni specificate nella riga di comando.

Durante il caricamento e l'esecuzione del pacchetto da parte dell'utilità, gli eventi si verificano nel seguente ordine:

  1. L'utilità dtexec carica il pacchetto.

  2. L'utilità applica le configurazioni specificate nel pacchetto in fase di progettazione, nell'ordine indicato nel pacchetto. L'unica eccezione è rappresentata dalle configurazioni Variabile pacchetto padre, le quali vengono applicate dall'utilità solo una volta e in una fase successiva del processo.

  3. L'utilità applica quindi le opzioni specificate nella riga di comando.

  4. A questo punto l'utilità ricarica le configurazioni specificate nel pacchetto in fase di progettazione, nell'ordine indicato nel pacchetto. L'unica eccezione a questa regola è di nuovo rappresentata dalle configurazioni Variabile pacchetto padre. L'utilità utilizza quindi le opzioni della riga di comando specificate per ricaricare le configurazioni. È pertanto possibile che vengano ricaricati valori diversi da posizioni differenti.

  5. L'utilità applica le configurazioni Variabile pacchetto padre.

  6. L'utilità esegue il pacchetto.

Il modo in cui l'utilità dtexec applica le configurazioni influisce sulle seguenti opzioni della riga di comando.

  • È possibile utilizzare l'opzione /Connection o /Set in fase di esecuzione per caricare le configurazioni di pacchetto da una posizione diversa da quella specificata in fase di progettazione.

  • È possibile utilizzare l'opzione /ConfigFile per caricare configurazioni aggiuntive non specificate in fase di progettazione.

Tali opzioni della riga di comando presentano tuttavia alcune restrizioni.

  • Non è possibile utilizzare l'opzione /Set per ignorare valori singoli impostati anche da una configurazione.

  • Non è possibile utilizzare l'opzione /ConfigFile per caricare configurazioni che sostituiscono quelle specificate in fase di progettazione.

Per ulteriori informazioni su queste opzioni e sulla differenza di comportamento di tali opzioni in SQL Server 2005Integration Services e SQL Server 2008Integration Services, vedere Differenze di comportamento delle funzionalità di Integration Services in SQL Server 2008.

Tipi di configurazioni di pacchetto

Nella tabella seguente vengono descritti i tipi di configurazione di pacchetto.

Tipo

Descrizione

File di configurazione XML

Le configurazioni sono incluse in un file XML. Il file può includere più configurazioni.

Variabile di ambiente

La configurazione è contenuta in una variabile di ambiente.

Voce di registro

La configurazione è inclusa in una voce di registro.

Variabile di pacchetto padre

La configurazione è contenuta in una variabile del pacchetto. Questo tipo di configurazione viene in genere utilizzato per l'aggiornamento di proprietà in pacchetti figlio.

Tabella di SQL Server

La configurazione è inclusa in una tabella di un database di SQL Server. La tabella può includere più configurazioni.

File di configurazione XML

Se si seleziona il tipo di configurazione File di configurazione XML, è possibile creare un nuovo file di configurazione, riutilizzare un file esistente e aggiungere nuove configurazioni oppure riutilizzare un file esistente sovrascrivendone il contenuto.

Un file di configurazione XML è suddiviso in due sezioni:

  • Un'intestazione contenente informazioni sul file. Questa sezione include attributi quali la data di creazione del file e il nome dell'utente che ha generato il file.

  • Elementi di configurazione contenenti informazioni su ogni configurazione. Questa sezione include attributi quali il percorso e il valore configurato di una proprietà.

Nel codice XML seguente viene illustrata la sintassi di un file di configurazione XML. Nell'esempio viene illustrata una configurazione per la proprietà Value di una variabile di tipo integer denominata MyVar.

<?xml version="1.0"?>
<DTSConfiguration>
   <DTSConfigurationHeading>
      <DTSConfigurationFileInfo
          GeneratedBy="DomainName\UserName"
          GeneratedFromPackageName="Package"
          GeneratedFromPackageID="{2AF06766-817A-4E28-9878-0DE37A150648}"
          GeneratedDate="2/01/2005 5:58:09 PM"/>
   </DTSConfigurationHeading>
   <Configuration ConfiguredType="Property" Path="\Package.Variables[User::MyVar].Value" ValueType="Int32">
      <ConfiguredValue>0</ConfiguredValue>
   </Configuration>
</DTSConfiguration>

Voce del Registro di sistema

Se si desidera utilizzare una voce del Registro di sistema per archiviare la configurazione, è possibile utilizzare una chiave esistente oppure creare una nuova chiave in HKEY_CURRENT_USER. La chiave del Registro di sistema utilizzata deve disporre di un valore denominato Value, che può corrispondere a un valore DWORD o una stringa.

Se si seleziona il tipo di configurazione Voce del Registro di sistema, è necessario digitare il nome della chiave del Registro di sistema nella casella Voce del Registro di sistema, nel formato <chiave Registro di sistema>. Se si desidera utilizzare una chiave del Registro di sistema che non si trova nella radice HKEY_CURRENT_USER, per identificare la chiave utilizzare il formato <chiave Registro di sistema\chiave Registro di sistema\...>. Per utilizzare la chiave MyPackage in SSISPackages, ad esempio, digitare SSISPackages\MyPackage.

SQL Server

Se si seleziona il tipo di configurazione SQL Server, è necessario specificare la connessione al database di SQL Server in cui si desidera archiviare le configurazioni. È possibile salvare le configurazioni in una tabella esistente oppure creare una nuova tabella nel database specificato.

L'istruzione SQL seguente illustra l'istruzione CREATE TABLE predefinita della Configurazione guidata pacchetto.

CREATE TABLE [dbo].[SSIS Configurations]
(
ConfigurationFilter NVARCHAR(255) NOT NULL,
ConfiguredValue NVARCHAR(255) NULL,
PackagePath NVARCHAR(255) NOT NULL,
ConfiguredValueType NVARCHAR(20) NOT NULL
)

Il nome specificato per la configurazione corrisponde al valore archiviato nella colonna ConfigurationFilter.

Configurazioni dirette e indirette

In Integration Services sono disponibili configurazioni dirette e indirette. Se le configurazioni vengono specificate in modo diretto, in Integration Services viene creato un collegamento diretto tra l'elemento di configurazione e la proprietà dell'oggetto di pacchetto. È consigliabile utilizzare le configurazioni dirette quando la posizione dell'origine non cambia. Ad esempio, se per tutte le distribuzioni di pacchetto viene utilizzato sempre lo stesso percorso di file, è possibile specificare un file di configurazione XML.

Nelle configurazioni indirette vengono utilizzate variabili di ambiente. Anziché specificare l'impostazione di configurazione in modo diretto, la configurazione punta a una variabile di ambiente, la quale contiene il valore di configurazione. È consigliabile utilizzare le configurazioni indirette quando la posizione della configurazione può essere diversa nelle varie distribuzioni di un pacchetto.

Risorse esterne

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 notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.

Cronologia modifiche

Aggiornamento del contenuto

  • Aggiunta della sezione "Informazioni sull'applicazione delle configurazioni di pacchetto in fase di esecuzione".