Erstellen eines CmdExec-Auftragsschritts

In diesem Thema wird beschrieben, wie Sie einen Microsoft SQL Server-Agent-Auftragsschritt in SQL Server 2012, der ein ausführbares Programm oder einen Betriebssystembefehl verwendet, mithilfe von SQL Server Management Studio, Transact-SQL oder SQL Server Management Objects erstellen und definieren können.

In diesem Thema

  • Vorbereitungen:  

    Sicherheit

  • So erstellen Sie einen CmdExec-Auftragsschritt mit

    SQL Server Management Studio

    Transact-SQL

    SQL Server Management Objects

Vorbereitungen

Sicherheit

Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin CmdExec-Auftragsschritte erstellen. Diese Aufträge werden im Kontext des Kontos des SQL Server-Agent-Dienstes ausgeführt, außer der sysadmin-Benutzer erstellt ein Proxykonto. Benutzer, die keine Mitglieder der sysadmin-Rolle sind, können CmdExec-Auftragsschritte erstellen, wenn sie Zugriff auf ein CmdExec-Proxykonto haben.

Berechtigungen

Ausführliche Informationen finden Sie unter Implementieren der SQL Server-Agent-Sicherheit.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So erstellen Sie einen CmdExec-Auftragsschritt

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von SQL Server Database Engine (Datenbankmodul) her, und erweitern Sie dann diese Instanz.

  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.

  3. Klicken Sie im Dialogfeld Auftragseigenschaften auf die Seite Schritte und dann auf Neu.

  4. Nehmen Sie im Dialogfeld Neuer Auftragsschritt unter Schrittname eine Eingabe vor.

  5. Wählen Sie in der Liste Typ den Eintrag Betriebssystem (CmdExec) aus.

  6. Wählen Sie in der Liste Ausführen als das Proxykonto mit den Anmeldeinformationen für den Auftrag aus. Standardmäßig werden CmdExec-Auftragsschritte im Kontext des Kontos des SQL Server-Agent-Dienstes ausgeführt.

  7. Geben Sie in das Feld Prozessexitcode eines erfolgreichen Befehls einen Wert zwischen 0 und 999999 ein.

  8. Geben Sie in das Feld Befehl den Betriebssystembefehl oder das ausführbare Programm ein. Ein Beispiel finden Sie unter "Verwendung von Transact-SQL".

  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 Auftragsschritts jeweils auszuführen ist, wie oft der SQL Server-Agent versuchen soll, den Auftragsschritt auszuführen, und in welche Datei der SQL Server-Agent die Auftragsschrittausgabe schreiben soll. Nur Mitglieder der festen Serverrolle sysadmin können die Auftragsschrittausgabe in eine Betriebssystemdatei schreiben.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

So erstellen Sie einen CmdExec-Auftragsschritt

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.

    -- creates a job step that 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).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Mit SQL Server Management Objects

So erstellen Sie einen CmdExec-Auftragsschritt

Verwenden Sie die JobStep-Klasse in einer von Ihnen ausgewählten Programmiersprache, z. B. Visual Basic, Visual C# oder PowerShell. Weitere Informationen finden Sie unter SQL Server Management Objects (SMO).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]