Verwalten von AuftragsschrittenManage Job Steps

DIESES THEMA GILT FÜR: jaSQL ServerjaAzure SQL-Datenbank (nur die verwaltete Instanz)neinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL Database (Managed Instance only)noAzure SQL Data Warehouse noParallel Data Warehouse

Wichtig

In einer verwalteten Azure SQL-Datenbank-Instanz werden die meisten, aber nicht alle, SQL Server-Agent-Features unterstützt.On Azure SQL Database Managed Instance, most, but not all SQL Server Agent features are currently supported. Weitere Informationen finden Sie unter T-SQL-Unterschiede zwischen einer verwalteten Azure SQL-Datenbank-Instanz und SQL Server.See Azure SQL Database Managed Instance T-SQL differences from SQL Server for details.

Ein Auftragsschritt ist eine Aktion, die der Auftrag auf einer Datenbank oder einem Server ausführt.A job step is an action that the job takes on a database or a server. Jeder Auftrag muss mindestens einen Auftragsschritt aufweisen.Every job must have at least one job step. Folgende Auftragsschritte sind möglich:Job steps can be:

  • Ausführbare Programme und Betriebssystembefehle.Executable programs and operating system commands.

  • Transact-SQLTransact-SQL Anweisungen, einschließlich gespeicherter Prozeduren und erweiterter gespeicherter Prozeduren. statements, including stored procedures and extended stored procedures.

  • PowerShell-Skripts.PowerShell scripts.

  • MicrosoftMicrosoft ActiveX-Skripts. ActiveX scripts.

  • Replikationstasks.Replication tasks.

  • Analysis ServicesAnalysis Services Aufgaben. tasks.

  • Integration ServicesIntegration Services Pakete. packages.

Jeder Auftragsschritt wird in einem bestimmten Sicherheitskontext ausgeführt.Every job step runs in a specific security context. Wenn der Auftragsschritt einen Proxy erfordert, wird er im Sicherheitskontext der Anmeldeinformationen des Proxys ausgeführt.If the job step specifies a proxy, the job step runs in the security context of the credential for the proxy. Wenn ein Auftragsschritt keinen Proxy erfordert, wird er im Kontext des SQL ServerSQL Server -Agent-Dienstkontos ausgeführt.If a job step does not specify a proxy, the job step runs in the context of the SQL ServerSQL Server Agent service account. Nur Mitglieder der festen Serverrolle sysadmin können Aufträge erstellen, die nicht ausdrücklich einen Proxy angeben.Only members of the sysadmin fixed server role can create jobs that do not explicitly specify a proxy.

Weil Auftragsschritte im Kontext eines bestimmten MicrosoftMicrosoft Windows-Benutzers ausgeführt werden, muss dieser Benutzer über die Berechtigungen und Konfigurationen verfügen, die für die Ausführung des Auftragsschritts erforderlich sind.Because job steps run in the context of a specific MicrosoftMicrosoft Windows user, that user must have the permissions and configuration necessary for the job step to execute. Wenn Sie beispielsweise einen Auftrag erstellen, der einen Laufwerkbuchstaben oder einen UNC-Pfad (Universal Naming Convention) erfordert, können die Auftragsschritte unter Ihrem Windows-Benutzerkonto ausgeführt werden, während die Tasks getestet werden.For example, if you create a job that requires a drive letter or a Universal Naming Convention (UNC) path, the job steps may run under your Windows user account while testing the tasks. Allerdings muss der Windows-Benutzer für den Auftragsschritt auch über die notwendigen Berechtigungen, die Laufwerkbuchstabenkonfigurationen oder den Zugriff auf das erforderliche Laufwerk verfügen.However, the Windows user for the job step must also have the necessary permissions, drive letter configurations, or access to the required drive. Andernfalls erzeugt der Auftragsschritt einen Fehler.Otherwise, the job step fails. Um dieses Problem zu verhindern, stellen Sie sicher, dass der Proxy für jeden Auftragsschritt über die notwendigen Berechtigungen für den Task verfügt, von dem der Auftragsschritt ausgeführt wird.To prevent this problem, ensure that the proxy for each job step has the necessary permissions for the task that the job step performs. Weitere Informationen finden Sie unter Sicherheit und Schutz (Datenbank-Engine).For more information, see Security and Protection (Database Engine).

AuftragsschrittprotokolleJob Step Logs

SQL ServerSQL Server Agent kann die Ausgabe bestimmter Auftragsschritte entweder in eine Betriebssystemdatei oder in die sysjobstepslogs-Tabelle der msdb-Datenbank schreiben. Agent can write output from some job steps either to an operating system file or to the sysjobstepslogs table in the msdb database. Von den folgenden Auftragsschritttypen können Ausgaben in beide Ziele geschrieben werden:The following job step types can write output to both destinations:

  • Ausführbare Programme und Betriebssystembefehle.Executable programs and operating system commands.

  • Transact-SQLTransact-SQL Anweisungen verwendet werden. statements.

  • Analysis ServicesAnalysis Services-Tasks. tasks.

Nur von Auftragsschritten, die von Benutzern ausgeführt werden, die Mitglieder der festen Serverrolle sysadmin sind, können Auftragsschrittausgaben in Betriebssystemdateien geschrieben werden.Only job steps that are executed by users who are members of the sysadmin fixed server role can write job step output to operating system files. Wenn die Auftragsschritte von Benutzern ausgeführt werden, die Mitglieder der festen Datenbankrolle SQLAgentUserRole, SQLAgentReaderRole oder SQLAgentOperatorRole der msdb-Datenbank sind, kann die Ausgabe dieser Auftragsschritte nur in die sysjobstepslogs-Tabelle geschrieben werden.If job steps are executed by users who are members of the SQLAgentUserRole, SQLAgentReaderRole, or the SQLAgentOperatorRole fixed database roles in the msdb database, then the output from these job steps can be written only to the sysjobstepslogs table.

Auftragsschritte werden automatisch gelöscht, wenn Aufträge oder Auftragsschritte gelöscht werden.Job step logs are automatically deleted when jobs or job steps are deleted.

Hinweis

Das Protokollieren von Replikationstasks und Integration ServicesIntegration Services -Paketauftragsschritten wird vom jeweiligen Subsystem durchgeführt.Replication task and Integration ServicesIntegration Services package job step logging is handled by their respective subsystem. Sie können zum Konfigurieren der Auftragsschrittprotokollierung nicht den SQL ServerSQL Server -Agent für diese Art von Auftragsschritten verwenden.You cannot use SQL ServerSQL Server Agent to configure jog step logging for these types of job steps.

Ausführbare Programme und Betriebssystembefehle als AuftragsschritteExecutable Programs and Operating-System Commands As Job Steps

Ausführbare Programme und Betriebssystembefehle können als Auftragsschritte verwendet werden.Executable programs and operating-system commands can be used as job steps. Diese Dateien können die Dateierweiterungen BAT, CMD, COM oder EXE aufweisen.These files may have .bat, .cmd, .com, or .exe file extensions.

Wenn Sie ein ausführbares Programm oder einen Betriebssystembefehl als Auftragsschritt verwenden, müssen Sie Folgendes angeben:When you use an executable program or an operating-system command as a job step, you must specify:

  • Den Prozessexitcode, der zurückgegeben wird, wenn der Befehl erfolgreich ausgeführt wurde.The process exit code returned if the command was successful.

  • Den auszuführenden Befehl.The command to execute. Beim Ausführen eines Betriebssystembefehls handelt es sich hierbei einfach um den Befehl selbst.To execute an operating system command, this is simply the command itself. Bei einem externen Programm ist dies der Name des Programms und die Argumente für das Programm, z. B.: C:\Programme\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who".For an external program, this is the name of the program and the arguments to the program, for example: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    Hinweis

    Sie müssen den vollständigen Pfad zur ausführbaren Datei angeben, wenn diese sich nicht in dem Verzeichnis befindet, das im Systempfad oder dem Pfad für den Benutzer angegeben ist, als der der Auftragsschritt ausgeführt wird.You must provide the full path to the executable if the executable is not located in a directory specified in the system path or the path for the user that the job step runs as.

Transact-SQL-AuftragsschritteTransact-SQL Job Steps

Beim Erstellen eines Transact-SQLTransact-SQL -Auftragsschritts müssen Sie folgende Schritte durchführen:When you create a Transact-SQLTransact-SQL job step, you must:

  • Identifizieren der Datenbank, in der Sie den Auftrag ausführen.Identify the database in which to run the job.

  • Eingeben der auszuführenden Transact-SQLTransact-SQL -Anweisung.Type the Transact-SQLTransact-SQL statement to execute. Von der Anweisung wird möglicherweise eine gespeicherte Prozedur oder eine erweiterte gespeicherte Prozedur aufgerufen.The statement may call a stored procedure or an extended stored procedure.

Sie können auch eine vorhandene Transact-SQLTransact-SQL -Datei als Befehl für den Auftragsschritt öffnen.Optionally, you can open an existing Transact-SQLTransact-SQL file as the command for the job step.

Transact-SQLTransact-SQL Auftragsschritte verwenden keine SQL ServerSQL Server -Agent-Proxys. job steps do not use SQL ServerSQL Server Agent proxies. Stattdessen wird der Auftragsschritt als Besitzer des Auftragsschritts bzw. als SQL ServerSQL Server -Agent-Dienstkonto ausgeführt, wenn der Besitzer des Auftragsschritts Mitglied der festen Serverrolle sysadmin ist.Instead, the job step runs as the owner of the job step, or as the SQL ServerSQL Server Agent service account if the owner of the job step is a member of the sysadmin fixed server role. Mitglieder der festen Serverrolle „sysadmin“ können auch angeben, dass Transact-SQLTransact-SQL -Auftragsschritte unter dem Kontext eines anderen Benutzers ausgeführt werden, indem der database_user_name -Parameter der gespeicherten Prozedur „sp_add_jobstep“ verwendet wird.Members of the sysadmin fixed server role can also specify that Transact-SQLTransact-SQL job steps run under the context of another user by using the database_user_name parameter of the sp_add_jobstep stored procedure. Weitere Informationen finden Sie unter sp_add_jobstep (Transact-SQL).For more information, see sp_add_jobstep (Transact-SQL).

Hinweis

Ein einzelner Transact-SQLTransact-SQL -Auftragsschritt kann mehrere Batches enthalten.A single Transact-SQLTransact-SQL job step can contain multiple batches. Transact-SQLTransact-SQL Auftragsschritte können mehrere eingebettete GO-Befehle enthalten. job steps can contain embedded GO commands.

PowerShell-Skript-AuftragsschrittePowerShell Scripting Job Steps

Wenn Sie einen PowerShell-Skript-Auftragsschritt erstellen, müssen Sie eins von zwei Elementen als Befehl für den Schritt angeben:When you create a PowerShell script job step, you must specify one of two things as the command for the step:

  • Den Text eines PowerShell-Skripts.The text of a PowerShell script.

  • Eine vorhandene PowerShell-Skriptdatei, die geöffnet werden soll.An existing PowerShell script file to be opened.

Das SQL ServerSQL Server Agent PowerShell-Subsystem öffnet eine PowerShell-Sitzung und lädt die SQL ServerSQL Server PowerShell-Snap-Ins. Das als Auftragsschrittbefehl verwendete PowerShell-Skript kann auf den SQL ServerSQL Server PowerShell-Anbieter und auf Cmdlets verweisen.The SQL ServerSQL Server Agent PowerShell subsystem opens a PowerShell session and loads the SQL ServerSQL Server PowerShell snap-ins. The PowerShell script used as the job step command can reference the SQL ServerSQL Server PowerShell provider and cmdlets. Weitere Informationen über das Schreiben von PowerShell-Skripts mithilfe von SQL ServerSQL Server PowerShell-Snap-Ins finden Sie unter SQL Server PowerShell.For more information about writing PowerShell scripts using the SQL ServerSQL Server PowerShell snap-ins, see the SQL Server PowerShell.

ActiveX-Skript-AuftragsschritteActiveX Scripting Job Steps

Wichtig

Der ActiveX-Skript-Auftragsschritt wird in einer zukünftigen Version von SQL ServerSQL Server aus dem MicrosoftMicrosoft SQL ServerSQL Server-Agent entfernt.The ActiveX scripting job step will be removed from SQL ServerSQL Server Agent in a future version of MicrosoftMicrosoft SQL ServerSQL Server. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Wenn Sie einen ActiveX-Skriptauftragsschritt erstellen, ist Folgendes notwendig:When you create an ActiveX scripting job step, you must:

  • Identifizieren der Skriptsprache, in der der Auftragsschritt geschrieben ist.Identify the scripting language in which the job step is written.

  • Erstellen des ActiveX-Skripts.Write the ActiveX script.

Sie können auch eine vorhandene ActiveX-Skriptdatei als Befehl für den Auftragsschritt öffnen.You can also open an existing ActiveX script file as the command for the job step. ActiveX-Skriptbefehle können alternativ auch extern (beispielsweise mithilfe von Microsoft Visual Basic) kompiliert und anschließend als ausführbare Programme ausgeführt werden.Alternatively, ActiveX script commands can be externally compiled (for example, using Microsoft Visual Basic) and then run as executable programs.

Handelt es sich bei dem Befehl eines Auftragsschritts um ein ActiveX-Skript, können Sie das SQLActiveScriptHost-Objekt verwenden, um Ausgaben in das Verlaufsprotokoll des Auftragsschritts zu drucken oder COM-Objekte zu erstellen.When a job step command is an ActiveX script, you can use the SQLActiveScriptHost object to print output to the job step history log or create COM objects. Bei SQLActiveScriptHost handelt es sich um ein globales Objekt, das vom Hostsystem des SQL ServerSQL Server -Agents in den Skriptnamensbereich eingefügt wird.SQLActiveScriptHost is a global object that is introduced by SQL ServerSQL Server Agent hosting system into the script name space. Das Objekt verfügt über zwei Methoden („Print“ und „CreateObject“).The object has two methods (Print and CreateObject). Das folgende Beispiel veranschaulicht, wie ActiveX-Skripts in Visual Basic Scripting Edition (VBScript) funktionieren.The following example shows how ActiveX scripting works in Visual Basic Scripting Edition (VBScript).

' VBScript example for ActiveX Scripting job step  
' Create a Dmo.Server object. The object connects to the  
' server on which the script is running.  

Set oServer = CreateObject("SQLDmo.SqlServer")  
oServer.LoginSecure = True  
oServer.Connect "(local)"  
'Disconnect and destroy the server object  
oServer.DisConnect  
Set oServer = nothing  

ReplikationsauftragsschritteReplication Job Steps

Wenn Sie Veröffentlichungen und Abonnements mithilfe der Replikation erstellen, werden standardmäßig Replikationsaufträge erstellt.When you create publications and subscriptions using replication, replication jobs are created by default. Der Typ der erstellten Aufträge wird durch den Typ der Replikation (Momentaufnahme, Transaktion oder Merge) und die verwendeten Optionen bestimmt.The type of job created is determined by the type of replication (snapshot, transactional, or merge) and the options used.

Replikationsauftragsschritte aktivieren einen dieser Replikations-Agents:Replication job steps activate one of these replication agents:

  • Momentaufnahme-Agent (Momentaufnahmeauftrag)Snapshot Agent (Snapshot job)

  • Protokolllese-Agent (Protokollleserauftrag)Log Reader Agent (LogReader job)

  • Verteilungs-Agent (Verteilungsauftrag)Distribution Agent (Distribution job)

  • Merge-Agent (Mergeauftrag)Merge Agent (Merge job)

  • Warteschlangenlese-Agent (Warteschlangenleser-Auftrag)Queue Reader Agent (QueueReader job)

Beim Einrichten der Replikation können Sie zwischen drei Ausführungsarten für die Replikations-Agents wählen: immer nach dem Start des SQL ServerSQL Server -Agents, bei Bedarf oder gemäß einem Zeitplan.When replication is set up, you can specify to run the replication agents in one of three ways: continuously after SQL ServerSQL Server Agent is started, on demand, or according to a schedule. Weitere Informationen zu Replikations-Agents finden Sie unter Replikations-Agents (Übersicht).For more information about replication agents, see Replication Agents Overview.

Analysis Services-AuftragsschritteAnalysis Services Job Steps

SQL ServerSQL Server Agent unterstützt zwei unterschiedliche Typen von Analysis Services-Auftragsschritten: Befehlsauftragsschritte und Abfrageauftragsschritte. Agent supports two distinct types of Analysis Services job steps, command job steps, and query job steps.

Analysis Services-BefehlsauftragsschritteAnalysis Services Command Job Steps

Wenn Sie einen Analysis ServicesAnalysis Services -Befehlsauftragsschritt erstellen, müssen Sie folgende Schritte durchführen:When you create an Analysis ServicesAnalysis Services command job step, you must:

  • Identifizieren der OLAP-Datenbank, in der Sie den Auftragsschritt ausführen.Identify the database OLAP server in which to run the job step.

  • Eingeben der auszuführenden Anweisung.Type the statement to execute. Bei der Anweisung muss es sich um eine Analysis ServicesAnalysis Services -Methode von XML für handeln.The statement must be an XML for Analysis ServicesAnalysis Services Execute method. Die Anweisung enthält möglicherweise keinen vollständigen SOAP-Umschlag (Simple Object Access Protocol) und keine XML für die Analysis ServicesAnalysis Services Discover handeln.The statement may not contain a complete SOAP envelope or an XML for Analysis ServicesAnalysis Services Discover method. Hinweis: Während SQL Server Management StudioSQL Server Management Studio vollständige SOAP-Umschläge und die Discover -Methode unterstützt, ist das bei SQL ServerSQL Server -Agent-Auftragsschritten nicht der Fall.Notice that, while SQL Server Management StudioSQL Server Management Studio supports complete SOAP envelopes and the Discover method, SQL ServerSQL Server Agent job steps do not.

Analysis Services-AbfrageauftragsschritteAnalysis Services Query Job Steps

Wenn Sie einen Analysis ServicesAnalysis Services -Abfrageauftragsschritt erstellen, müssen Sie folgende Schritte durchführen:When you create an Analysis ServicesAnalysis Services query job step, you must:

  • Identifizieren der OLAP-Datenbank, in der Sie den Auftragsschritt ausführen.Identify the database OLAP server in which to run the job step.

  • Eingeben der auszuführenden Anweisung.Type the statement to execute. Bei der Anweisung muss es sich um eine MDX-Abfrage handeln (Multidimensional Expressions, mehrdimensionale Ausdrücke).The statement must be a multidimensional expressions (MDX) query.

Weitere Informationen zu MDX finden Sie unter Grundlegendes zur MDX-Anweisung (MDX).For more information on MDX, see MDX Statement Fundamentals (MDX).

Integration Services-PaketeIntegration Services Packages

Wenn Sie einen Integration ServicesIntegration Services -Paketauftragsschritt erstellen, müssen Sie folgende Schritte durchführen:When you create an Integration ServicesIntegration Services package job step, you must do the following:

  • Identifizieren der Paketquelle.Identify the source of the package.

  • Identifizieren des Paketspeicherorts.Identify the location of the package.

  • Identifizieren der Konfigurationsdateien, wenn diese für das Paket erforderlich sind.If configuration files are required for the package, identify the configuration files.

  • Identifizieren der Befehlsdateien, wenn diese für das Paket erforderlich sind.If command files are required for the package, identify the command files.

  • Identifizieren der für das Paket zu verwendenden Überprüfung.Identify the verification to use for the package. Sie können beispielsweise angeben, dass das Paket signiert werden oder eine bestimmte Paket-ID aufweisen muss.For example, you can specify that the package must be signed, or that the package must have a specific package ID.

  • Identifizieren der Datenquellen für das Paket.Identify the data sources for the package.

  • Identifizieren der Protokollanbieter für das Paket.Identify the log providers for the package.

  • Angeben von Variablen und Werten, die vor dem Ausführen des Pakets festgelegt werden.Specify variables and values to set before running the package.

  • Identifizieren von Ausführungsoptionen.Identify execution options.

  • Hinzufügen oder Ändern von Befehlszeilenoptionen.Add or modify command-line options.

Hinweis: Wenn Sie das Paket im SSIS-Katalog bereitgestellt und Sie SSIS-Katalog als Paketquelle angegeben haben, werden viele dieser Konfigurationsinformationen automatisch vom Paket abgerufen.Note that if you deployed the package to the SSIS Catalog and you specify SSIS Catalog as the package source, much of this configuration information is obtained automatically from the package. Auf der Registerkarte Konfiguration können Sie die Umgebung, Parameterwerte, Verbindungs-Manager-Werte und Eigenschaftenüberschreibungen angeben und ob das Paket in einer 32-Bit-Laufzeitumgebung ausgeführt wird.Under the Configuration tab you can specify the environment, parameter values, connection manager values, property overrides, and whether the package runs in a 32-bit runtime environment.

Informationen zum Erstellen von Auftragsschritten, von denen Integration ServicesIntegration Services -Pakete ausgeführt werden, finden Sie unter Aufträge des SQL Server-Agents für Pakete.For more information about creating job steps that run Integration ServicesIntegration Services packages, see SQL Server Agent Jobs for Packages.

BeschreibungDescription ThemaTopic
Beschreibt, wie ein Auftragsschritt mit einem ausführbaren Programm erstellt wird.Describes how to create a job step with an executable program. Erstellen eines CmdExec-AuftragsschrittsCreate a CmdExec Job Step
Beschreibt, wie SQL ServerSQL Server -Agent-Berechtigungen zurückgesetzt werden.Describes how to reset SQL ServerSQL Server Agent permissions. Konfigurieren eines Benutzers zum Erstellen und Verwalten von SQL Server-Agent-AufträgenConfigure a User to Create and Manage SQL Server Agent Jobs
Beschreibt, wie ein Transact-SQLTransact-SQL -Auftragsschritt erstellt wird.Describes how to create a Transact-SQLTransact-SQL job step. Erstellen eines Transact-SQL-AuftragsschrittsCreate a Transact-SQL Job Step
Beschreibt, wie Optionen für Transact-SQL-Auftragsschritte für den Microsoft SQL ServerSQL Server -Agent erstellt werden.Describes how to define options for Microsoft SQL ServerSQL Server Agent Transact-SQL job steps. Definieren von Optionen für Transact-SQL-AuftragsschritteDefine Transact-SQL Job Step Options
Beschreibt, wie ein ActiveX-Skript-Auftragsschritt erstellt wird.Describes how to create an ActiveX script job step. Erstellen eines ActiveX-Skript-AuftragsschrittsCreate an ActiveX Script Job Step
Beschreibt, wie SQL ServerSQL Server -Agent-Auftragsschritte erstellt und definiert werden, die SQL ServerSQL Server Analysis Services-Befehle und -Abfragen ausführen.Describes how to create and define SQL ServerSQL Server Agent job steps that execute SQL ServerSQL Server Analysis Services commands and queries. Erstellen eines Analysis Services-AuftragsschrittsCreate an Analysis Services Job Step
Beschreibt, welche Aktion SQL ServerSQL Server ausführen sollte, wenn während der Auftragsausführung ein Fehler auftritt.Describes what action SQL ServerSQL Server should take if a failure occurs during job execution. Set Job Step Success or Failure FlowSet Job Step Success or Failure Flow
Beschreibt, wie Auftragsschrittdetails im Dialogfeld Auftragsschritt-Eigenschaften angezeigt werden.Describes how to view job step details in the Job Step Properties dialog. Anzeigen von AuftragsschrittinformationenView Job Step Information
Beschreibt, wie ein Auftragsschrittprotokoll des SQL ServerSQL Server -Agents gelöscht wird.Describes how to delete a SQL ServerSQL Server Agent job step log. Löschen eines AuftragsschrittprotokollsDelete a Job Step Log

Weitere Informationen finden Sie unterSee Also

sysjobstepslogs (Transact-SQL)sysjobstepslogs (Transact-SQL)
Erstellen von AufträgenCreate Jobs
sp_add_job (Transact-SQL)sp_add_job (Transact-SQL)