SkripttaskScript Task

Der Skripttask stellt Code zum Ausführen von Funktionen bereit, die in den integrierten Tasks und Transformationen von SQL ServerSQL Server Integration ServicesIntegration Services nicht verfügbar sind.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. Der Skripttask kann auch Funktionen in einem einzigen Skript zusammenfassen, statt mehrere Tasks und Transformationen zu verwenden.The Script task can also combine functions in one script instead of using multiple tasks and transformations. Sie verwenden den Skripttask für einmalige Aktionen in einem Paket (einmalig pro aufgezähltem Objekt), anstatt diese einmalig pro Datenzeile auszuführen.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.

Der Skripttask kann für folgende Zwecke verwendet werden:You can use the Script task for the following purposes:

  • Zugreifen auf Daten mithilfe anderer Technologien, die nicht von integrierten Verbindungstypen unterstützt werden.Access data by using other technologies that are not supported by built-in connection types. Beispielsweise kann ein Skript mithilfe von Active Directory Service Interfaces (ADSI) auf Benutzernamen von Active Directory zugreifen und diese extrahieren.For example, a script can use Active Directory Service Interfaces (ADSI) to access and extract user names from Active Directory.

  • Erstellen eines paketspezifischen Leistungsindikators.Create a package-specific performance counter. Beispielsweise kann ein Skript einen Leistungsindikator erstellen, der aktualisiert wird, während ein komplexer Task oder ein Task mit einem geringen Leistungsverhalten ausgeführt wird.For example, a script can create a performance counter that is updated while a complex or poorly performing task runs.

  • Identifizieren, ob angegebene Dateien leer sind bzw. wie viele Zeilen sie enthalten, und deren Auswirkungen auf die Ablaufsteuerung in einem Paket auf Basis dieser Informationen.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. Enthält eine Datei beispielsweise 0 Zeilen, wird der Wert einer Variablen auf 0 festgelegt, und eine Rangfolgeneinschränkung, die den Wert auswertet, verhindert das Kopieren der Datei mit einem Dateisystemtask.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.

    Wenn Sie das Skript verwenden müssen, um die gleichen Aktionen für jede Datenzeile einer Gruppe auszuführen, verwenden Sie anstelle des Skripttasks die Skriptkomponente.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. Eine Skriptkomponente wird beispielsweise verwendet, wenn Sie auswerten möchten, ob eine Portogebühr und das Auslassen von Datenzeilen mit extrem hohen oder niedrigen Beträgen angemessen sind.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. Weitere Informationen finden Sie unter Script Component.For more information, see Script Component.

    Falls ein Skript von mehreren Paketen verwendet wird, sollten Sie einen benutzerdefinierten Task erstellen, statt den Skripttask zu verwenden.If more than one package uses a script, consider writing a custom task instead of using the Script task. Weitere Informationen finden Sie unter Entwickeln eines benutzerdefinierten Tasks.For more information, see Developing a Custom Task.

    Nachdem Sie entschieden haben, dass die Skriptkomponente für Ihr Paket geeignet ist, müssen Sie das Skript entwickeln, das vom Task verwendet wird, und den Task konfigurieren.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.

Erstellen und Ausführen des Skripts, das vom Task verwendet wirdWriting and Running the Script that the Task Uses

Der Skripttask verwendet MicrosoftMicrosoft Visual StudioVisual Studio -Tools für Anwendungen (VSTA) als Umgebung zum Erstellen der Skripts und des Moduls, mit dem die Skripts ausgeführt werden.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.

VSTA enthält alle Standardfunktionen der Visual StudioVisual Studio -Umgebung, z.B. den Visual StudioVisual Studio -Editor mit Farbcodierung, IntelliSense und den Objekt-Explorer.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 verwendet zudem den Debugger, der auch von anderen MicrosoftMicrosoft -Entwicklungstools verwendet wird.VSTA also uses the same debugger that other MicrosoftMicrosoft development tools use. Breakpoints im Skript sind vollständig mit Breakpoints in Tasks und Containern von Integration ServicesIntegration Services kompatibel.Breakpoints in the script work seamlessly with breakpoints on Integration ServicesIntegration Services tasks and containers. VSTA unterstützt die Programmiersprachen MicrosoftMicrosoft Visual Basic und MicrosoftMicrosoft Visual C#.VSTA supports both the MicrosoftMicrosoft Visual Basic and MicrosoftMicrosoft Visual C# programming languages.

Zum Ausführen eines Skripts muss VSTA auf dem Computer installiert sein, auf dem das Paket ausgeführt wird.To run a script, you must have VSTA installed on the computer where the package runs. Wenn das Paket ausgeführt wird, lädt der Task das Skriptmodul und führt das Skript aus.When the package runs, the task loads the script engine and runs the script. Sie können auf externe .NET-Assemblys zugreifen, indem Sie Verweise auf die Assemblys im Projekt hinzufügen.You can access external .NET assemblies in scripts by adding references to the assemblies in the project.

Hinweis

Anders als in früheren Versionen, in denen Sie angeben konnten, ob die Skripts vorkompiliert sind, werden in SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) und nachfolgenden Versionen alle Skripts vorkompiliert.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. Wenn ein Skript vorkompiliert ist, wird das Sprachmodul zur Laufzeit nicht geladen, und das Paket wird schneller ausgeführt.When a script is precompiled, the language engine is not loaded at run time and the package runs more quickly. Kompilierte binäre Dateien belegen jedoch erheblich mehr Speicherplatz.However, precompiled binary files consume significant disk space.

Konfigurieren des SkripttasksConfiguring the Script Task

Es gibt folgende Möglichkeiten, um den Skripttask zu konfigurieren:You can configure the Script task in the following ways:

  • Stellen Sie das benutzerdefinierte Skript bereit, das von dem Task ausgeführt wird.Provide the custom script that the task runs.

  • Geben Sie die Methode im VSTA-Projekt an, die die Integration ServicesIntegration Services -Laufzeit als Einstiegspunkt in den Code des Skripttasks aufruft.Specify the method in the VSTA project that the Integration ServicesIntegration Services runtime calls as the entry point into the Script task code.

  • Geben Sie die Skriptsprache an.Specify the script language.

  • Geben Sie optional Listen mit schreibgeschützten und Lese-/Schreibvariablen für die Verwendung im Skript an.Optionally, provide lists of read-only and read/write variables for use in the script.

    Diese Eigenschaften können Sie mit dem SSISSSIS -Designer oder programmgesteuert festlegen.You can set these properties through SSISSSIS Designer or programmatically.

Konfigurieren des Skripttasks im DesignerConfiguring the Script Task in the Designer

In der folgenden Tabelle wird das ScriptTaskLogEntry -Ereignis beschrieben, das für den Skripttask protokolliert werden kann.The following table describes the ScriptTaskLogEntry event that can be logged for Script task. Das ScriptTaskLogEntry -Ereignis wird für die Protokollierung auf der Registerkarte Details des Dialogfelds SSIS-Protokolle konfigurieren ausgewählt.The ScriptTaskLogEntry event is selected for logging on the Details tab of the Configure SSIS Logs dialog box. Weitere Informationen finden Sie unter Integration Services-Protokollierung (SSIS).For more information, see Integration Services (SSIS) Logging.

ProtokolleintragLog entry DescriptionDescription
ScriptTaskLogEntryScriptTaskLogEntry Gibt die Ergebnisse des Implementierens der Protokollierung innerhalb des Skripts an.Reports the results of implementing logging in the script. Der Task schreibt für jeden Aufruf der Log -Methode des Dts -Objekts einen Protokolleintrag.The task writes a log entry for each call to the Log method of the Dts object. Der Task schreibt diese Einträge, wenn der Code ausgeführt wird.The task writes these entries when the code is run. Weitere Informationen finden Sie unter Logging in the Script Task.For more information, see Logging in the Script Task.

Klicken Sie auf die folgenden Themen, um weitere Informationen zu den Eigenschaften zu erhalten, die Sie im SSISSSIS -Designer festlegen können:For more information about the properties that you can set in SSISSSIS Designer, see the following topics:

Programmgesteuertes Konfigurieren des SkripttasksConfiguring the Script Task Programmatically

Weitere Informationen zum programmgesteuerten Festlegen dieser Eigenschaften finden Sie im folgenden Thema:For more information about programmatically setting these properties, see the following topic:

Skripttask-Editor (Seite Allgemein)Script Task Editor (General Page)

Auf der Seite Allgemein des Dialogfelds Skripttask-Editor können Sie einen Namen und eine Beschreibung für den Skripttask angeben.Use the General page of the Script Task Editor dialog box to name and describe the Script task.

Weitere Informationen zum Skripttask finden Sie unter Skripttask und Konfigurieren des Scripttask im Scripttask-Editor.To learn more about the Script task, see Script Task and Configuring the Script Task in the Script Task Editor. Informationen zum Programmieren des Skripttasks finden Sie unter Erweitern von Paketen mit dem Skripttask.To learn about programming the Script task, see Extending the Package with the Script Task.

enthaltenOptions

NameName
Geben Sie einen eindeutigen Namen für den Skripttask an.Provide a unique name for the Script task. Dieser Name wird im Tasksymbol als Bezeichnung verwendet.This name is used as the label in the task icon.

Hinweis

Tasknamen müssen innerhalb eines Pakets eindeutig sein.Task names must be unique within a package.

DescriptionDescription
Geben Sie eine Beschreibung des Skripttasks ein.Type a description of the Script task.

Skripttask-Editor (Seite Skript)Script Task Editor (Script Page)

Mithilfe der Seite Skript des Dialogfelds Skripttask-Editor können Sie Skripteigenschaften festlegen und Variablen angeben, auf die dieses Skript zugreifen kann.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.

Hinweis

In SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) und höheren Versionen werden alle Skripts vorkompiliert.In SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) and later versions, all scripts are precompiled. In früheren Versionen wurde eine PrecompileScriptIntoBinaryCode -Eigenschaft festgelegt, um anzugeben, dass das Skript vorkompiliert wurde.In earlier versions, you set a PrecompileScriptIntoBinaryCode property to specify that the script was precompiled.

Weitere Informationen zum Skripttask finden Sie unter Script Task und 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. Informationen zum Programmieren des Skripttasks finden Sie unter Erweitern von Paketen mit dem Skripttask.To learn about programming the Script task, see Extending the Package with the Script Task.

enthaltenOptions

ScriptLanguageScriptLanguage
Wählen Sie die Skriptsprache für den Task aus, entweder MicrosoftMicrosoft Visual Basic oder MicrosoftMicrosoft Visual C#.Select the scripting language for the task, either MicrosoftMicrosoft Visual Basic or MicrosoftMicrosoft Visual C#.

Nachdem Sie ein Skript für den Task erstellt haben, können Sie den Wert der ScriptLanguage -Eigenschaft nicht mehr ändern.After you have created a script for the task, you cannot change the value of the ScriptLanguage property.

Um die Standardskriptsprache für den Skripttask festzulegen, verwenden Sie im Dialogfeld Optionen auf der Seite Allgemein die Option Skriptsprache .To set the default scripting language for the Script task, use the Scripting language option on General page of the Options dialog box. Weitere Informationen finden Sie unter General Page.For more information, see General Page.

EntryPointEntryPoint
Geben Sie die Methode an, die die Integration ServicesIntegration Services -Laufzeit als Einstiegspunkt in den Code des Skripttasks aufruft.Specify the method that the Integration ServicesIntegration Services runtime calls as the entry point into the code of the Script task. Die angegebene Methode muss in der ScriptMain-Klasse des Projekts der MicrosoftMicrosoft Visual StudioVisual Studio -Tools für Anwendungen (VSTA) angegeben werden. ScriptMain ist die Standardklasse, die von den Skriptvorlagen generiert wird.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.

Wenn Sie den Namen der Methode im VSTA-Projekt geändert haben, müssen Sie den Wert der EntryPoint -Eigenschaft ändern.If you change the name of the method in the VSTA project, you must change the value of the EntryPoint property.

ReadOnlyVariablesReadOnlyVariables
Geben Sie eine durch Trennzeichen getrennte Liste von schreibgeschützten Variablen ein, die für das Skript verfügbar sind, oder klicken Sie auf die Schaltfläche mit den Auslassungspunkten (), und wählen Sie die Variablen im Dialogfeld Variablen auswählen aus.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.

Hinweis

Bei Variablennamen wird nach Groß-/Kleinschreibung unterschieden.Variable names are case sensitive.

ReadWriteVariablesReadWriteVariables
Geben Sie eine durch Trennzeichen getrennte Liste von Lese-/Schreibvariablen ein, die für das Skript verfügbar sind, oder klicken Sie auf die Schaltfläche mit den Auslassungspunkten (), und wählen Sie die Variablen im Dialogfeld Variablen auswählen aus.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.

Hinweis

Bei Variablennamen wird nach Groß-/Kleinschreibung unterschieden.Variable names are case sensitive.

Skript bearbeitenEdit Script
Öffnet die VSTA IDE, in der Sie das Skript erstellen oder ändern können.Opens the VSTA IDE where you can create or modify the script.