sp_add_job (Transact-SQL)
Adiciona um novo trabalho executado pelo serviço SQLServerAgent.
Convenções da sintaxe Transact-SQL
Sintaxe
sp_add_job [ @job_name = ] 'job_name'
[ , [ @enabled = ] enabled ]
[ , [ @description = ] '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 = ] '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 valor padrão.[ @enabled = ] enabled
Indica o status do trabalho adicionado. enabledé tinyint, com o padrão 1 (habilitado). Se for 0, o trabalho não está habilitado e não é executado de acordo com sua agenda; entretanto, pode ser executado manualmente.[ @description = ] 'description'
A descrição do trabalho. description é nvarchar(512), com o padrão NULL. Se a description for omitida, será usado “Nenhuma descrição disponível”.[ @start_step_id = ] step_id
O número de identificação da primeira etapa a ser executada para o trabalho. step_idé int, com o padrão 1.[ @category_name = ] 'category'
A categoria do trabalho. category é sysname, com um padrão NULL.[ @category_id = ] category_id
Um mecanismo independente de idioma para especificar uma categoria de trabalho. category_id é int, com um padrão NULL.[ @owner_login_name = ] 'login'
O nome do logon que é o proprietário do trabalho. loginé sysname, com um padrão NULL, que é interpretado como nome de logon atual. Somente os membros da função de servidor fixa sysadmin podem definir ou alterar o valor de @owner_login_name. Se usuários que não forem membros da função sysadmin definirem ou alterarem o valor de @owner_login_name, haverá falha na execução deste procedimento e um erro será retornado.[ @notify_level_eventlog = ] eventlog_level
Um valor que indica quando colocar uma entrada no log de aplicativo do Microsoft Windows para este trabalho. eventlog_levelé int e pode ter um destes valores.Value
Descrição
0
Nunca
1
Caso haja êxito
2 (padrão)
Caso haja falha
3
Always
[ @notify_level_email = ] email_level
Um valor que indica quando enviar um email após a conclusão deste trabalho. email_levelé int, com um padrão 0, que indica nunca. email_levelusa os mesmos valores que eventlog_level.[ @notify_level_netsend = ] netsend_level
Um valor que indica quando enviar uma mensagem da rede após a conclusão deste trabalho. netsend_levelé int, com um padrão 0, que indica nunca. netsend_level usa os mesmos valores que eventlog_level.[ @notify_level_page = ] page_level
Um valor que indica quando enviar uma página após a conclusão deste trabalho. page_levelé int, com um padrão 0, que indica nunca. page_levelusa os mesmos valores que eventlog_level.[ @notify_email_operator_name = ] 'email_name'
O nome de email da pessoa para quem o email será enviado quando email_level for atingido. email_name é sysname, com um padrão NULL.[ @notify_netsend_operator_name = ] 'netsend_name'
O nome do operador para quem a mensagem da rede será enviada após a conclusão deste trabalho. netsend_name é sysname, com um padrão NULL.[ @notify_page_operator_name = ] 'page_name'
O nome da pessoa para quem uma mensagem de pager será enviada após a conclusão deste trabalho. page_name é sysname, com um padrão NULL.[ @delete_level = ] delete_level
Um valor que indica quando excluir o trabalho. delete_valueis int, com padrão 0, que significa nunca. delete_levelusa os mesmos valores que eventlog_level.Observação Quando delete_level for 3, o trabalho será executado apenas uma vez, independentemente de quaisquer agendas definidas 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 = ] job_idOUTPUT
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 o padrão NULL.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Conjuntos de resultados
Nenhum
Comentários
@originating_server existe em sp_add_job, mas não está listado em Argumentos. @originating_server está reservado para uso interno.
Depois que sp_add_job for executado para adicionar um trabalho, sp_add_jobstep poderá ser usado para adicionar etapas que executam as atividades para o trabalho. sp_add_jobschedule pode ser usado para criar a agenda usada pelo serviço do SQL Server Agent 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 será 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 de grupos de servidores de destino, use sp_remove_job_from_targets.
O SQL Server Management Studio gerencia trabalhos de forma fácil e com representação gráfica. Além disso, ele é recomendado para criar e gerenciar a infraestrutura de trabalhos.
Permissões
Para executar este procedimento armazenado, os usuários devem ser membros da função de servidor fixa sysadmin ou receber uma das seguintes funções de banco de dados fixas do SQL Server Agent, que residem no banco de dados msdb:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Para obter informações sobre as permissões específicas que estão associadas a cada destas funções de banco de dados fixas, consulte Funções de banco de dados fixas do SQL Server Agent.
Somente os membros da função de servidor fixa sysadmin podem definir ou alterar o valor de @owner_login_name. Se usuários que não forem membros da função sysadmin definirem ou alterarem o valor de @owner_login_name, haverá falha na execução deste procedimento e um erro será retornado.
Exemplos
A.Adicionando um trabalho
Este exemplo adiciona um novo trabalho denominado NightlyBackups.
USE msdb ;
GO
EXEC dbo.sp_add_job
@job_name = N'NightlyBackups' ;
GO
B.Adicionando um trabalho com informações de pager, email e net send
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
Consulte também
Referência
sp_add_schedule (Transact-SQL)
sp_add_jobserver (Transact-SQL)
sp_apply_job_to_targets (Transact-SQL)
sp_delete_jobserver (Transact-SQL)
sp_remove_job_from_targets (Transact-SQL)