Créer une étape de travail CmdExec

S’applique à :SQL ServerAzure SQL Managed Instance

Important

Dans Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez Différences T-SQL entre Azure SQL Managed Instance et SQL Server.

Cette rubrique explique comment créer et définir une étape de travail de Microsoft SQL Server Agent dans SQL Server qui utilise un programme exécutable ou une commande du système d’exploitation, en utilisant SQL Server Management Studio, Transact-SQL ou SQL Server Management Objects.

Avant de commencer

Sécurité

Par défaut, seuls les membres du rôle de serveur fixe sysadmin peuvent créer des étapes de travail CmdExec. Ces étapes de travail s'exécutent sous le contexte du compte de service SQL Server Agent à moins que l'utilisateur sysadmin crée un compte proxy. Les utilisateurs qui ne sont pas membres du rôle sysadmin peuvent créer des étapes de travail CmdExec s'ils peuvent accéder à un compte proxy CmdExec.

Autorisations

Pour plus d'informations, consultez Implémenter la sécurité de SQL Server Agent.

Utilisation de SQL Server Management Studio

Pour créer une étape de travail CmdExec

  1. Dans l’Explorateur d'objets , connectez-vous à une instance du Moteur de base de données SQL Serveret développez-la.

  2. Développez SQL Server Agent, créez un travail ou cliquez avec le bouton droit de la souris sur un travail existant, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés du travail , cliquez sur la page Étapes , puis sur Nouveau.

  4. Dans la boîte de dialogue Nouvelle étape du travail , tapez un nom d'étapede travail.

  5. Dans la liste Type , choisissez Système d’exploitation (CmdExec) .

  6. Dans la liste Exécuter en tant que , sélectionnez le compte proxy avec les informations d'identification que doit utiliser le travail. Par défaut, les étapes de travail CmdExec s'exécutent dans le contexte du compte de service SQL Server Agent.

  7. Dans la zone Traiter le code de sortie d'une commande réussie , entrez une valeur comprise entre 0 et 999999.

  8. Dans la zone Commande , saisissez la commande du système d'exploitation ou le programme exécutable. Consultez « Utilisation de Transact T-SQL » pour obtenir un exemple.

  9. Cliquez sur la page Avancé pour définir les options d’étape de travail, comme l’action à exécuter quand l’étape de travail aboutit ou échoue, le nombre de tentatives d’exécution de l’étape de travail que doit effectuer SQL Server Agent et le fichier dans lequel SQL Server Agent peut écrire la sortie de l’étape de travail. Seuls les membres du rôle de serveur fixe sysadmin peuvent écrire une sortie d'étape de travail dans un fichier du système d'exploitation.

Utilisation de Transact-SQL

Pour créer une étape de travail CmdExec

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.

    -- 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  
    

Pour plus d’informations, consultez sp_add_jobstep (Transact-SQL).

Utilisation de SQL Server Management Objects

Pour créer une étape de travail CmdExec

Utilisez la classe JobStep à l’aide du langage de programmation de votre choix, tel que Visual Basic, Visual C# ou PowerShell.