Create a CmdExec Job StepCreate a CmdExec Job Step

Gilt für: JaSQL Server JaAzure SQL-Datenbank (nur verwaltete Instanz) NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) 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.

In diesem Thema wird beschrieben, wie Sie einen MicrosoftMicrosoft SQL ServerSQL Server -Agent-Auftragsschritt in SQL ServerSQL Server , der ein ausführbares Programm oder einen Betriebssystembefehl verwendet, mithilfe von SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL oder SQL Server Management Objects erstellen und definieren können.This topic describes how to create and define a MicrosoftMicrosoft SQL ServerSQL Server Agent job step in SQL ServerSQL Server that uses an executable program or operating system command by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL or SQL Server Management Objects.

VorbereitungenBefore You Begin

SicherheitSecurity

Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin CmdExec-Auftragsschritte erstellen.By default, only members of the sysadmin fixed server role can create CmdExec job steps. Diese Aufträge werden im Kontext des Kontos des SQL Server-Agent-Dienstes ausgeführt, außer der sysadmin -Benutzer erstellt ein Proxykonto.These job steps run under the context of the SQL Server Agent service account unless the sysadmin user creates a proxy account. Benutzer, die keine Mitglieder der sysadmin -Rolle sind, können CmdExec-Auftragsschritte erstellen, wenn sie Zugriff auf ein CmdExec-Proxykonto haben.Users who are not members of the sysadmin role can create CmdExec job steps if they have access to a CmdExec proxy account.

BerechtigungenPermissions

Ausführliche Informationen finden Sie unter Implementieren der SQL Server-Agent-Sicherheit.For detailed information, see Implement SQL Server Agent Security.

Verwenden von SQL Server Management StudioUsing SQL Server Management Studio

So erstellen Sie einen CmdExec-AuftragsschrittTo create a CmdExec job step

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von SQL Server-Datenbank-EngineSQL Server Database Engineher, und erweitern Sie dann diese Instanz.In Object Explorer, connect to an instance of the SQL Server-Datenbank-EngineSQL Server Database Engine, and then expand that instance.

  2. Erweitern Sie SQL Server-Agent, erstellen Sie einen neuen Auftrag, oder klicken Sie mit der rechten Maustaste auf einen vorhandenen Auftrag, und klicken Sie dann auf Eigenschaften.Expand SQL Server Agent, create a new job or right-click an existing job, and then click Properties.

  3. Klicken Sie im Dialogfeld Auftragseigenschaften auf die Seite Schritte und dann auf Neu.In the Job Properties dialog, click the Steps page, and then click New.

  4. Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittnameeinen Schrittnamen für den Auftrag ein.In the New Job Step dialog, type a job Step name.

  5. Wählen Sie in der Liste Typ den Eintrag Betriebssystem (CmdExec) aus.In the Type list, choose Operating system (CmdExec).

  6. Wählen Sie in der Liste Ausführen als das Proxykonto mit den Anmeldeinformationen für den Auftrag aus.In Run as list, select the proxy account with the credentials that the job will use. Standardmäßig werden CmdExec-Auftragsschritte im Kontext des Kontos des SQL Server-Agent-Dienstes ausgeführt.By default, CmdExec job steps run under the context of the SQL Server Agent service account.

  7. Geben Sie in das Feld Prozessexitcode eines erfolgreichen Befehls einen Wert zwischen 0 und 999999 ein.In the Process exit code of a successful command box, enter a value from 0 to 999999.

  8. Geben Sie in das Feld Befehl den Betriebssystembefehl oder das ausführbare Programm ein.In the Command box, enter the operating system command or executable program. Ein Beispiel finden Sie unter "Verwendung von Transact-SQL".See "Using Transact T-SQL for an example.

  9. Klicken Sie auf die Seite Erweitert , um Optionen für Auftragsschritte festzulegen, z. B. welche Aktion bei der erfolgreichen oder fehlerhaften Ausführung des Auftragsschrittes jeweils auszuführen ist, wie oft der SQL ServerSQL Server -Agent versuchen soll, den Auftragsschritt auszuführen, und in welche Datei der SQL ServerSQL Server -Agent die Auftragsschrittausgabe schreiben soll.Click the Advanced page to set job step options, such as: what action to take if the job step succeeds or fails, how many times SQL ServerSQL Server Agent should try to execute the job step, and the file where SQL ServerSQL Server Agent can write the job step output. Nur Mitglieder der festen Serverrolle sysadmin können die Auftragsschrittausgabe in eine Betriebssystemdatei schreiben.Only members of the sysadmin fixed server role can write job step output to an operating system file.

Verwenden von Transact-SQLUsing Transact-SQL

So erstellen Sie einen CmdExec-AuftragsschrittTo create a CmdExec job step

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-EngineDatabase Engine-Instanz her.In Object Explorer, connect to an instance of Datenbank-EngineDatabase Engine.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.On the Standard bar, click New Query.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.Copy and paste the following example into the query window and click Execute.

    -- creates a job step that uses CmdExec  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Set database to read only',  
        @subsystem = N'CMDEXEC',  
        @command = 'C:\clickme_scripts\SQL11\PostBOLReorg GetHsX.exe',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    

Weitere Informationen finden Sie unter sp_add_jobstep (Transact-SQL).For more information, see sp_add_jobstep (Transact-SQL)

Verwendung von SQL Server Management ObjectsUsing SQL Server Management Objects

So erstellen Sie einen CmdExec-AuftragsschrittTo create a CmdExec job step

Verwenden Sie die JobStep -Klasse indem Sie eine von Ihnen ausgewählte Programmiersprache, z. B. Visual Basic, Visual C# oder PowerShell verwenden.Use the JobStep class by using a programming language that you choose, such as Visual Basic, Visual C#, or PowerShell.