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: