Créer une étape de travail CmdExecCreate a CmdExec Job Step

Cette rubrique s’applique à : OuiSQL Serveraucunbase de données SQL AzureaucunAzure SQL Data Warehouse aucun Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse Cette rubrique explique comment créer et définir une étape de travail de MicrosoftMicrosoft SQL ServerSQL Server Agent dans SQL Server 2017SQL Server 2017 qui utilise un programme exécutable ou une commande de système d’exploitation, à l’aide de SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL ou SQL Server Management Objects. This topic describes how to create and define a MicrosoftMicrosoft SQL ServerSQL Server Agent job step in SQL Server 2017SQL Server 2017 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.

Dans cette rubriqueIn This Topic

Avant de commencerBefore You Begin

SécuritéSecurity

Par défaut, seuls les membres du rôle de serveur fixe sysadmin peuvent créer des étapes de travail CmdExec.By default, only members of the sysadmin fixed server role can create CmdExec job steps. 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.These job steps run under the context of the SQL Server Agent service account unless the sysadmin user creates a proxy account. 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.Users who are not members of the sysadmin role can create CmdExec job steps if they have access to a CmdExec proxy account.

PermissionsPermissions

Pour plus d'informations, consultez Implement SQL Server Agent Security.For detailed information, see Implement SQL Server Agent Security.

Utilisation de SQL Server Management StudioUsing SQL Server Management Studio

Pour créer une étape de travail CmdExecTo create a CmdExec job step

  1. Dans l’Explorateur d'objets , connectez-vous à une instance du Moteur de base de données SQL ServerSQL Server Database Engineet développez-la.In Object Explorer, connect to an instance of the Moteur de base de données SQL ServerSQL Server Database Engine, and then expand that instance.

  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.Expand SQL Server Agent, create a new job or right-click an existing job, and then click Properties.

  3. Dans la boîte de dialogue Propriétés du travail , cliquez sur la page Étapes , puis sur Nouveau.In the Job Properties dialog, click the Steps page, and then click New.

  4. Dans la boîte de dialogue Nouvelle étape du travail , tapez un nom d'étapede travail.In the New Job Step dialog, type a job Step name.

  5. Dans la liste Type , choisissez Système d’exploitation (CmdExec).In the Type list, choose Operating system (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.In Run as list, select the proxy account with the credentials that the job will use. Par défaut, les étapes de travail CmdExec s'exécutent dans le contexte du compte de service SQL Server Agent.By default, CmdExec job steps run under the context of the SQL Server Agent service account.

  7. Dans la zone Traiter le code de sortie d'une commande réussie , entrez une valeur comprise entre 0 et 999999.In the Process exit code of a successful command box, enter a value from 0 to 999999.

  8. Dans la zone Commande , saisissez la commande du système d'exploitation ou le programme exécutable.In the Command box, enter the operating system command or executable program. Consultez « Utilisation de Transact T-SQL » pour obtenir un exemple.See "Using Transact T-SQL for an example.

  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 ServerSQL Server et le fichier où SQL ServerSQL Server peut écrire la sortie de l'étape de travail.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. 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.Only members of the sysadmin fixed server role can write job step output to an operating system file.

Utilisation de Transact-SQLUsing Transact-SQL

Pour créer une étape de travail CmdExecTo create a CmdExec job step

  1. Dans l'Explorateur d'objets, connectez-vous à une instance de Moteur de base de donnéesDatabase Engine.In Object Explorer, connect to an instance of Moteur de base de donnéesDatabase Engine.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.On the Standard bar, click New Query.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.Copy and paste the following example into the query window and click Execute.

    -- 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).For more information, see sp_add_jobstep (Transact-SQL)

Utilisation de SQL Server Management ObjectsUsing SQL Server Management Objects

Pour créer une étape de travail CmdExecTo create a CmdExec job step

Utilisez la classe JobStep à l’aide du langage de programmation de votre choix, tel que Visual Basic, Visual C# ou PowerShell.Use the JobStep class by using a programming language that you choose, such as Visual Basic, Visual C#, or PowerShell.