Partilhar via


Criar uma etapa de trabalho CmdExec

Aplica-se a:SQL ServerAzure SQL Managed Instance

Importante

No Azure SQL Managed Instance, a maioria dos recursos do SQL Server Agent, mas não todos, são suportados no momento. Consulte Diferenças de T-SQL da Instância Gerenciada do Azure SQL em relação ao SQL Server ou as limitações de trabalho do SQL Agent na Instância Gerenciada do SQL para obter detalhes.

Este tópico descreve como criar e definir uma etapa de trabalho do Microsoft SQL Server Agent no SQL Server que usa um programa executável ou comando do sistema operacional usando o SQL Server Management Studio, o Transact-SQL ou o SQL Server Management Objects.

Antes de começar

Segurança

Por padrão, somente membros da função de servidor fixa sysadmin podem criar etapas de trabalho CmdExec. Essas etapas de trabalho são executadas no contexto da conta de serviço do SQL Server Agent, a menos que o usuário sysadmin crie uma conta proxy. Os usuários que não são membros da função sysadmin podem criar etapas de trabalho CmdExec se tiverem acesso a uma conta proxy CmdExec.

Permissões

Para obter informações detalhadas, consulte Implementar o SQL Server Agent Security.

Usando o SQL Server Management Studio

Para criar uma etapa de trabalho CmdExec

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server e depois expanda essa instância.

  2. Expanda SQL Server Agent, crie uma nova tarefa ou clique com o botão direito numa tarefa existente e, em seguida, clique em Propriedades.

  3. Na caixa de diálogo Propriedades do Trabalho, clique na página Etapas e, em seguida, clique em Novo.

  4. Na caixa de diálogo Nova Etapa do Trabalho, digite um nome para a etapa de trabalho .

  5. Na lista Tipo, escolha Sistema operacional (CmdExec).

  6. Na lista Executar como , selecione a conta proxy com as credenciais que o trabalho usará. Por padrão, as etapas de trabalho CmdExec são executadas no contexto da conta de serviço do SQL Server Agent.

  7. Na caixa Código de saída do processo de um comando bem-sucedido , insira um valor de 0 a 999999.

  8. Na caixa Comando , insira o comando do sistema operacional ou o programa executável. Consulte "Usando o Transact T-SQL para obter um exemplo.

  9. Clique na página Avançado para definir opções de etapa de trabalho, como: qual ação executar se a etapa de trabalho for bem-sucedida ou falhar, quantas vezes o SQL Server Agent deve tentar executar a etapa de trabalho e o arquivo em que o SQL Server Agent pode gravar a saída da etapa de trabalho. Somente membros da função de servidor fixa sysadmin podem gravar a saída da etapa do trabalho em um arquivo do sistema operacional.

Usando Transact-SQL

Para criar uma etapa de trabalho CmdExec

  1. No Pesquisador de Objetos , conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.

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

Para obter mais informações, consulte sp_add_jobstep (Transact-SQL)

Usando objetos de gerenciamento do SQL Server

Para criar uma etapa de trabalho CmdExec

Use a classe JobStep usando uma linguagem de programação que você escolher, como Visual Basic, Visual C# ou PowerShell.