Attività ScriptScript Task

L'attività Script fornisce il codice necessario per eseguire le funzioni non disponibili nelle trasformazioni e nelle attività predefinite di SQL ServerSQL Server Integration ServicesIntegration Services .The Script task provides code to perform functions that are not available in the built-in tasks and transformations that SQL ServerSQL Server Integration ServicesIntegration Services provides. Tale attività consente inoltre di combinare più funzioni in un unico script, anziché utilizzare più attività e trasformazioni.The Script task can also combine functions in one script instead of using multiple tasks and transformations. L'attività Script può essere utilizzata per operazioni che devono essere eseguite una sola volta in un pacchetto o una sola volta per oggetto enumerato, anziché una volta per ogni riga di dati.You use the Script task for work that must be done once in a package (or once per enumerated object), instead than once per data row.

È possibile utilizzare l'attività Script per gli scopi seguenti:You can use the Script task for the following purposes:

  • Accedere ai dati tramite tecnologie non supportate dai tipi di connessioni predefiniti.Access data by using other technologies that are not supported by built-in connection types. Negli script è ad esempio possibile utilizzare ADSI (Active Directory Service Interfaces) per accedere ad Active Directory ed estrarre i nomi utente.For example, a script can use Active Directory Service Interfaces (ADSI) to access and extract user names from Active Directory.

  • Creare contatori delle prestazioni specifici dei pacchetti.Create a package-specific performance counter. Uno script può ad esempio creare un contatore delle prestazioni che viene aggiornato durante l'esecuzione di un'attività complessa o con prestazioni insufficienti.For example, a script can create a performance counter that is updated while a complex or poorly performing task runs.

  • Determinare il numero delle righe contenute nei file specificati o stabilire se sono vuoti e quindi modificare il flusso di controllo di un pacchetto in base alle informazioni ottenute.Identify whether specified files are empty or how many rows they contain, and then based on that information affect the control flow in a package. Se ad esempio un file non contiene righe, il valore di una determinata variabile verrà impostato su 0 e un vincolo di precedenza che valuta tale valore impedirà all'attività File system di copiare il file.For example, if a file contains zero rows, the value of a variable set to 0, and a precedence constraint that evaluates the value prevents a File System task from copying the file.

    Se è necessario utilizzare lo script per eseguire le stesse operazioni per ogni riga di dati in una set, è consigliabile utilizzare il componente script anziché l'attività Script.If you have to use the script to do the same work for each row of data in a set, you should use the Script component instead of the Script task. Se ad esempio si desidera stabilire se l'importo delle spese postali è ragionevole e ignorare le righe di dati che includono importi troppo alti o troppo bassi, è consigliabile utilizzare il componente script.For example, if you want to assess the reasonableness of a postage amount and skip data rows that have very high or low amounts, you would use a Script component. Per altre informazioni, vedere Componente script.For more information, see Script Component.

    Per gli script utilizzati da più di un pacchetto è preferibile creare un'attività personalizzata, anziché utilizzare l'attività Script.If more than one package uses a script, consider writing a custom task instead of using the Script task. Per altre informazioni, vedere Sviluppo di un'attività personalizzata.For more information, see Developing a Custom Task.

    Una volta stabilito che l'attività Script è la scelta più appropriata per il pacchetto, è necessario sia sviluppare lo script utilizzato dall'attività sia configurare l'attività stessa.After you decide that the Script task is the appropriate choice for your package, you have to both develop the script that the task uses and configure the task itself.

Scrittura ed esecuzione di script utilizzati dall'attivitàWriting and Running the Script that the Task Uses

L'attività Script usa MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) come ambiente in cui scrivere gli script e come motore in cui eseguirli.The Script task uses MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) as the environment in which you write the scripts and the engine that runs those scripts.

In VSTA sono disponibili tutte le funzionalità standard dell'ambiente Visual StudioVisual Studio, come l'editor di Visual StudioVisual Studio contraddistinto dal colore, la tecnologia IntelliSense ed Esplora oggetti.VSTA provides all the standard features of the Visual StudioVisual Studio environment, such as the color-coded Visual StudioVisual Studio editor, IntelliSense, and Object Explorer. VSTA utilizza anche lo stesso debugger usato da altri strumenti di sviluppo di MicrosoftMicrosoft .VSTA also uses the same debugger that other MicrosoftMicrosoft development tools use. I punti di interruzione degli script si integrano completamente con quelli delle attività e dei contenitori di Integration ServicesIntegration Services .Breakpoints in the script work seamlessly with breakpoints on Integration ServicesIntegration Services tasks and containers. VSTA supporta i linguaggi di programmazione MicrosoftMicrosoft Visual Basic e MicrosoftMicrosoft Visual C#.VSTA supports both the MicrosoftMicrosoft Visual Basic and MicrosoftMicrosoft Visual C# programming languages.

Per eseguire uno script, VSTA deve essere pertanto installato nel computer in cui viene eseguito il pacchetto.To run a script, you must have VSTA installed on the computer where the package runs. Durante l'esecuzione di un pacchetto l'attività carica il motore di scripting ed esegue lo script.When the package runs, the task loads the script engine and runs the script. È possibile accedere ad assembly .NET esterni dagli script aggiungendo i riferimenti a tali assembly nel progetto.You can access external .NET assemblies in scripts by adding references to the assemblies in the project.

Nota

A differenza delle versioni precedenti in cui è possibile indicare se gli script fossero precompilati o meno, in SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) e versioni successive tutti gli script sono precompilati.Unlike earlier versions where you could indicate whether the scripts were precompiled, all scripts are precompiled in SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) and later versions. Se uno script è precompilato, il motore del linguaggio non verrà caricato in fase di esecuzione e il pacchetto verrà eseguito molto più rapidamente.When a script is precompiled, the language engine is not loaded at run time and the package runs more quickly. I file binari precompilati occupano tuttavia una notevole quantità di spazio su disco.However, precompiled binary files consume significant disk space.

Configurazione dell'attività ScriptConfiguring the Script Task

Per configurare l'attività Script, procedere nel modo seguente:You can configure the Script task in the following ways:

  • Specificare lo script personalizzato che deve essere eseguito dall'attività.Provide the custom script that the task runs.

  • Nel progetto VSTA, specificare il metodo chiamato dal runtime Integration ServicesIntegration Services come punto di ingresso nel codice dell'attività Script.Specify the method in the VSTA project that the Integration ServicesIntegration Services runtime calls as the entry point into the Script task code.

  • Specificare il linguaggio di scripting.Specify the script language.

  • È facoltativamente possibile specificare gli elenchi delle variabili in sola lettura e in lettura e scrittura da utilizzare nello script.Optionally, provide lists of read-only and read/write variables for use in the script.

    È possibile impostare queste proprietà tramite Progettazione SSISSSIS o a livello di codice.You can set these properties through SSISSSIS Designer or programmatically.

Configurazione dell'attività Script in ProgettazioneConfiguring the Script Task in the Designer

La tabella seguente illustra l'evento ScriptTaskLogEntry che può essere registrato per l'attività Script.The following table describes the ScriptTaskLogEntry event that can be logged for Script task. L'evento ScriptTaskLogEntry viene selezionato per essere registrato sulla scheda Dettagli della finestra di dialogo Configura log SSIS .The ScriptTaskLogEntry event is selected for logging on the Details tab of the Configure SSIS Logs dialog box. Per altre informazioni, vedere registrazione di Integration Services (SSIS).For more information, see Integration Services (SSIS) Logging.

Voce di logLog entry DescriptionDescription
ScriptTaskLogEntryScriptTaskLogEntry Restituisce i risultati dell'implementazione della registrazione nell'ambito dello script.Reports the results of implementing logging in the script. L'attività scrive una voce di log per ogni chiamata al metodo Log dell'oggetto Dts .The task writes a log entry for each call to the Log method of the Dts object. Tali voci vengono scritte dall'attività al momento dell'esecuzione del codice.The task writes these entries when the code is run. Per altre informazioni, vedere Registrazione nell'attività Script.For more information, see Logging in the Script Task.

Per ulteriori informazioni sulle proprietà che è possibile impostare in Progettazione SSISSSIS , vedere gli argomenti seguenti:For more information about the properties that you can set in SSISSSIS Designer, see the following topics:

Configurazione dell'attività Script a livello di codiceConfiguring the Script Task Programmatically

Per ulteriori informazioni sull'impostazione di queste proprietà a livello di codice, vedere l'argomento seguente:For more information about programmatically setting these properties, see the following topic:

Editor attività Script (pagina Generale)Script Task Editor (General Page)

Utilizzare la pagina Generale della finestra di dialogo Editor attività Script per assegnare un nome e una descrizione all'attività Script.Use the General page of the Script Task Editor dialog box to name and describe the Script task.

Per ulteriori informazioni sull'attività Script, vedere attività Script e configurazione dell'attività Script nell'Editor attività Script.To learn more about the Script task, see Script Task and Configuring the Script Task in the Script Task Editor. Per informazioni sulla programmazione dell'attività Script, vedere estensione del pacchetto con l'attività Script.To learn about programming the Script task, see Extending the Package with the Script Task.

OpzioniOptions

NomeName
Consente di digitare un nome univoco per l'attività Script.Provide a unique name for the Script task. Tale nome viene utilizzato come etichetta nell'icona dell'attività.This name is used as the label in the task icon.

Nota

I nomi delle attività devono essere univoci all'interno di un pacchetto.Task names must be unique within a package.

DescriptionDescription
Consente di digitare una descrizione dell'attività Script.Type a description of the Script task.

Editor attività Script (pagina Script)Script Task Editor (Script Page)

Utilizzare la pagina Script della finestra di dialogo Editor attività Script per impostare le proprietà dello script e specificare le variabili accessibili per lo script.Use the Script page of the Script Task Editor dialog box to set script properties and specify variables that can be accessed by the script.

Nota

In SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) e versioni successive, tutti gli script sono precompilati.In SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) and later versions, all scripts are precompiled. Nelle versioni precedenti, si imposta una proprietà PrecompileScriptIntoBinaryCode per specificare che lo script è stato precompilato.In earlier versions, you set a PrecompileScriptIntoBinaryCode property to specify that the script was precompiled.

Per ulteriori informazioni sull'attività Script, vedere Script Task e Configuring the Script Task in the Script Task Editor.To learn more about the Script task, see Script Task and Configuring the Script Task in the Script Task Editor. Per informazioni sulla programmazione dell'attività Script, vedere estensione del pacchetto con l'attività Script.To learn about programming the Script task, see Extending the Package with the Script Task.

OpzioniOptions

ScriptLanguageScriptLanguage
Selezionare il linguaggio di scripting per l'attività, MicrosoftMicrosoft Visual Basic o MicrosoftMicrosoft Visual C#.Select the scripting language for the task, either MicrosoftMicrosoft Visual Basic or MicrosoftMicrosoft Visual C#.

Dopo avere creato uno script per l'attività, non è possibile modificare il valore della proprietà ScriptLanguage .After you have created a script for the task, you cannot change the value of the ScriptLanguage property.

Per impostare il linguaggio di scripting predefinito per l'attività Script, utilizzare l'opzione Linguaggio di scripting nella pagina Generale della finestra di dialogo Opzioni .To set the default scripting language for the Script task, use the Scripting language option on General page of the Options dialog box. Per ulteriori informazioni, vedere General Page.For more information, see General Page.

EntryPointEntryPoint
Specificare il metodo chiamato dal runtime Integration ServicesIntegration Services come punto di ingresso nel codice dell'attività Script.Specify the method that the Integration ServicesIntegration Services runtime calls as the entry point into the code of the Script task. Il metodo specificato deve essere nella classe ScriptMain del progetto MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA). ScriptMain è la classe predefinita generata dai modelli di script.The specified method must be in the ScriptMain class of the MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) project The ScriptMain class is the default class generated by the script templates.

Se si modifica il nome del metodo nel progetto VSTA, è necessario modificare il valore della proprietà EntryPoint .If you change the name of the method in the VSTA project, you must change the value of the EntryPoint property.

ReadOnlyVariablesReadOnlyVariables
Digitare un elenco delimitato da virgole di variabili di sola lettura disponibili per lo script oppure fare clic sul pulsante con i puntini di sospensione () e selezionare le variabili nella finestra di dialogo Seleziona variabili .Type a comma-separated list of read-only variables that are available to the script, or click the ellipsis () button and select the variables in the Select variables dialog box.

Nota

Per i nomi delle variabili viene fatta distinzione tra maiuscole e minuscole.Variable names are case sensitive.

ReadWriteVariablesReadWriteVariables
Digitare un elenco delimitato da virgole di variabili di lettura/scrittura disponibili per lo script oppure fare clic sul pulsante con i puntini di sospensione () e selezionare le variabili nella finestra di dialogo Seleziona variabili .Type a comma-separated list of read/write variables that are available to the script, or click the ellipsis () button and select the variables in the Select variables dialog box.

Nota

Per i nomi delle variabili viene fatta distinzione tra maiuscole e minuscole.Variable names are case sensitive.

Modifica scriptEdit Script
Apre VSTA IDE, dove è possibile creare o modificare lo script.Opens the VSTA IDE where you can create or modify the script.