Créer une étape de travail CmdExec

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

Dans cette rubrique

  • Avant de commencer :  

    Sécurité

  • Pour créer une étape de travail CmdExec, utilisez :

    SQL Server Management Studio

    Transact-SQL

    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 l'Agent SQL Server.

Icône de flèche utilisée avec le lien Retour en haut[Top]

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 Server et développez-la.

  2. Développez Agent SQL Server, 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'étape de 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, telles que l'action à exécuter lorsque l'étape de travail aboutit ou échoue, le nombre de tentatives d'exécution de l'étape de travail que doit effectuer l'Agent SQL Server et le fichier où l'Agent SQL Server peut écrire la sortie de l'étape de travail. Seuls les membres du rôle fixe sysadmin peuvent écrire la sortie de l'étape de travail dans un fichier de système d'exploitation.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de Transact-SQL

Pour créer une étape de travail CmdExec

  1. Dans l'Explorateur d'objets, connectez-vous à une instance de 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 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)

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de SQL Server Management Objects

Pour créer une étape de travail CmdExec

Utilisez la classe JobStep à l'aide d'un langage de programmation que vous choisissez, tel que Visual Basic, Visual C# ou PowerShell. Pour plus d'informations, consultez SQL Server Management Objects (SMO).

Icône de flèche utilisée avec le lien Retour en haut[Top]