Partager via


Créer une étape de travail CmdExec

s’applique à :SQL ServerAzure SQL Managed Instance

Important

Sur Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités de SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez différences T-SQL d’Azure SQL Managed Instance par rapport à SQL Server.

Cette rubrique explique comment créer et définir une étape de travail Microsoft SQL Server Agent dans SQL Server qui utilise un programme exécutable ou une commande de système d’exploitation à l’aide de 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 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, sauf si 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 ont accès à 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 Explorateur d'objets, connectez-vous à une instance du moteur de base de données SQL Server, puis étendez cette instance.

  2. Développez SQL Server Agent, créez une nouvelle tâche ou faites un clic droit sur une tâche existante, puis cliquez sur Propriétés.

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

  4. Dans la boîte de dialogue nouvelle étape du travail, tapez un nom de tâche étape.

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

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

  7. Dans la boîte de dialogue Code de sortie du processus d'une commande réussie, entrez une valeur comprise entre 0 et 999999.

  8. Dans la zone de 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 des options d’étape de travail, telles que : quelle action effectuer si l’étape de travail réussit ou échoue, combien de fois SQL Server Agent doit essayer d’exécuter l’étape de travail et le fichier dans lequel SQL Server Agent peut écrire la sortie de l’étape de travail. Seuls les membres de l'sysadmin rôle serveur fixe peuvent écrire la sortie de l’étape de travail dans un fichier de système d’exploitation.

Utilisation de Transact-SQL

Pour créer une étape de travail CmdExec

  1. Dans Explorateur d’objets, connectez-vous à une instance du moteur de base de données.

  2. Dans la barre 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 d’objets de gestion SQL Server

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.