sp_add_job (Transact-SQL)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
Cria um novo trabalho executado pelo serviço SQL Server Agent.
Convenções de sintaxe de Transact-SQL
Importante
Atualmente, na Instância Gerenciada de SQL do Azure, a maioria dos recursos do SQL Server Agent é compatível, mas não todos. Confira Diferenças entre o T-SQL da Instância Gerenciada de SQL do Azure e o SQL Server para obter detalhes.
Sintaxe
sp_add_job
[ @job_name = ] N'job_name'
[ , [ @enabled = ] enabled ]
[ , [ @description = ] N'description' ]
[ , [ @start_step_id = ] step_id ]
[ , [ @category_name = ] 'category' ]
[ , [ @category_id = ] category_id ]
[ , [ @owner_login_name = ] 'login' ]
[ , [ @notify_level_eventlog = ] eventlog_level ]
[ , [ @notify_level_email = ] email_level ]
[ , [ @notify_level_netsend = ] netsend_level ]
[ , [ @notify_level_page = ] page_level ]
[ , [ @notify_email_operator_name = ] 'email_name' ]
[ , [ @notify_netsend_operator_name = ] 'netsend_name' ]
[ , [ @notify_page_operator_name = ] 'page_name' ]
[ , [ @delete_level = ] delete_level ]
[ , [ @job_id = ] job_id OUTPUT ]
[ ; ]
Argumentos
@job_name
O nome do trabalho. O nome deve ser exclusivo e não pode conter o caractere de porcentagem (%
). @job_name é nvarchar(128), sem padrão. Obrigatória.
@enabled
Indica o status do trabalho adicionado. enabled é tinyint, com um padrão de 1
(enabled). Se 0
, o trabalho não estiver habilitado e não for executado de acordo com sua programação; no entanto, ele poderá ser executado manualmente.
@description
A descrição do trabalho. @description é nvarchar(512), com um padrão de NULL
. Se @description for omitido, N'No description available'
é usado.
@start_step_id
O número de identificação da primeira etapa a ser executada para o trabalho. @start_step_id é int, com um padrão de 1
.
@category_name
A categoria do trabalho. @category_name é sysname, com um padrão de NULL
.
@category_id
Um mecanismo independente de idioma para especificar uma categoria de trabalho. @category_id é int, com um padrão de NULL
.
@owner_login_name
O nome do logon que é o proprietário do trabalho. @owner_login_name é sysname, com um padrão de , que é interpretado como o nome de NULL
logon atual. Somente membros da função de servidor fixa sysadmin podem definir ou alterar o valor para @owner_login_name. Se os usuários que não são membros da função sysadmin definirem ou alterarem o valor de @owner_login_name, a execução desse procedimento armazenado falhará e um erro será retornado.
@notify_level_eventlog
Um valor que indica quando colocar uma entrada no log de aplicativo do Microsoft Windows para este trabalho. @notify_level_eventlog é int e pode ser um destes valores:
Valor | Descrição |
---|---|
0 |
Never |
1 |
Caso haja êxito |
2 (padrão) |
Caso haja falha |
3 |
Sempre |
@notify_level_email
Um valor que indica quando enviar um email após a conclusão deste trabalho. @notify_level_email é int, com um padrão de 0
, que indica nunca. @notify_level_email usa os mesmos valores que @notify_level_eventlog.
@notify_level_netsend
Um valor que indica quando enviar uma mensagem da rede após a conclusão deste trabalho. @notify_level_netsend é int, com um padrão de 0
, que indica nunca. @notify_level_netsend usa os mesmos valores que @notify_level_eventlog.
@notify_level_page
Um valor que indica quando enviar uma página após a conclusão deste trabalho. @notify_level_page é int, com um padrão de 0
, que indica nunca. @notify_level_page usa os mesmos valores que @notify_level_eventlog.
@notify_email_operator_name
O nome de email da pessoa para a qual enviar email quando @notify_email_operator_name for alcançado. @notify_email_operator_name é sysname, com um padrão de NULL
.
@notify_netsend_operator_name
O nome do operador para quem a mensagem da rede será enviada após a conclusão deste trabalho. @notify_netsend_operator_name é sysname, com um padrão de NULL
.
@notify_page_operator_name
O nome da pessoa para quem uma mensagem de pager será enviada após a conclusão deste trabalho. @notify_page_operator_name é sysname, com um padrão de NULL
.
@delete_level
Um valor que indica quando excluir o trabalho. delete_value é int, com um padrão de 0
, o que significa nunca. @delete_level usa os mesmos valores que @notify_level_eventlog.
Observação
Quando @delete_level é 3
, o trabalho é executado apenas uma vez, independentemente de quaisquer agendamentos definidos para o trabalho. Além disso, se um trabalho excluir a si próprio, todo o histórico do trabalho também será excluído.
@job_id SAÍDA
O número de identificação atribuído ao trabalho caso ele seja criado com êxito. @job_id é uma variável de saída do tipo uniqueidentifier, com um padrão de NULL
.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Conjunto de resultados
Nenhum.
Comentários
@originating_server existe em sp_add_job
, mas não está listado em Argumentos. @originating_server é reservado para uso interno.
Depois de sp_add_job
executado para adicionar um trabalho, sp_add_jobstep
pode ser usado para adicionar etapas que executam as atividades do trabalho. sp_add_jobschedule
pode ser usado para criar o agendamento que o serviço SQL Server Agent usa para executar o trabalho.
Use sp_add_jobserver
para definir a instância do SQL Server em que o trabalho é executado e sp_delete_jobserver
para remover o trabalho da instância do SQL Server. Se o trabalho for executado em um ou mais servidores de destino em um ambiente multisservidor, use sp_apply_job_to_targets
para definir os servidores de destino ou grupos de servidores de destino para o trabalho. Para remover trabalhos de servidores de destino ou grupos de servidores de destino, use sp_remove_job_from_targets
. Não há suporte para o recurso de Administração de Vários Servidores (MSX/TSX) na Instância Gerenciada de SQL do Azure.
O SQL Server Management Studio fornece um modo gráfico fácil de gerenciar trabalhos e é o modo recomendado de criar e gerenciar a infra-estrutura de trabalho.
Esse procedimento armazenado compartilha o nome de sp_add_job
com um objeto semelhante para o serviço de Trabalhos Elásticos do Azure para Banco de Dados SQL do Azure. Para obter informações sobre a versão dos trabalhos elásticos, consulte jobs.sp_add_job (Trabalhos Elásticos do Azure).
Permissões
Você pode conceder EXECUTE
permissões nesse procedimento, mas essas permissões podem ser substituídas durante uma atualização do SQL Server.
Outros usuários devem receber uma das seguintes funções de banco de dados fixas do msdb
SQL Server Agent no banco de dados:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Para obter detalhes sobre as permissões dessas funções, consulte Funções de banco de dados fixas do SQL Server Agent.
Somente membros da função de servidor fixa sysadmin podem definir ou alterar o valor para @owner_login_name. Se os usuários que não são membros da função sysadmin definirem ou alterarem o valor de @owner_login_name, a execução desse procedimento armazenado falhará e um erro será retornado.
Exemplos
R. Adicionar um trabalho
Este exemplo adiciona um novo trabalho denominado NightlyBackups
.
USE msdb;
GO
EXEC dbo.sp_add_job @job_name = N'NightlyBackups';
GO
B. Adicionar um trabalho com pager, email e informações de envio de rede
Este exemplo cria um trabalho denominado Ad hoc Sales Data Backup
que notifica François Ajenstat
(por pager, email ou mensagem pop-up de rede) se o trabalho falhar, excluindo o trabalho após a conclusão com êxito.
Observação
Este exemplo supõe que já exista um operador denominado François Ajenstat
e um logon nomeado françoisa
.
USE msdb;
GO
EXEC dbo.sp_add_job
@job_name = N'Ad hoc Sales Data Backup',
@enabled = 1,
@description = N'Ad hoc backup of sales data',
@owner_login_name = N'françoisa',
@notify_level_eventlog = 2,
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = N'François Ajenstat',
@notify_netsend_operator_name = N'François Ajenstat',
@notify_page_operator_name = N'François Ajenstat',
@delete_level = 1;
GO
Conteúdo relacionado
- sp_add_schedule (Transact-SQL)
- sp_add_jobstep (Transact-SQL)
- sp_add_jobserver (Transact-SQL)
- sp_apply_job_to_targets (Transact-SQL)
- sp_delete_job (Transact-SQL)
- sp_delete_jobserver (Transact-SQL)
- sp_remove_job_from_targets (Transact-SQL)
- sp_help_job (Transact-SQL)
- sp_help_jobstep (Transact-SQL)
- sp_update_job (Transact-SQL)