Compartir a través de


sp_add_job (Transact-SQL)

Agrega un nuevo trabajo ejecutado por el servicio SQLServerAgent.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

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'
    Nombre del trabajo. El nombre debe ser único y no puede contener el carácter del porcentaje (%). job_namees de tipo nvarchar(128) y no tiene valor predeterminado.

  • [ @enabled = ] enabled
    Indica el estado del trabajo agregado. enabledes de tipo tinyint y su valor predeterminado es 1 (habilitado). Si es 0, el trabajo no está habilitado y no se ejecuta de acuerdo con su programación; no obstante, se puede ejecutar manualmente.

  • [ @description = ] 'description'
    Descripción del trabajo. description es de tipo nvarchar(512) y su valor predeterminado es NULL. Si description se omite, se utiliza "No hay ninguna descripción".

  • [ @start_step_id = ] step_id
    Número de identificación del primer paso que se va a ejecutar para el trabajo. step_ides de tipo int y su valor predeterminado es 1.

  • [ @category_name = ] 'category'
    Categoría del trabajo. categoryes de tipo sysname y su valor predeterminado es NULL.

  • [ @category_id = ] category_id
    Mecanismo independiente del idioma para especificar una categoría de trabajo. category_ides de tipo int y su valor predeterminado es NULL.

  • [ @owner_login_name = ] 'login'
    Nombre del inicio de sesión al que pertenece el trabajo. logines de tipo sysname y su valor predeterminado es NULL, lo que se interpreta como el nombre de inicio de sesión actual. Solo los miembros del rol fijo de servidor sysadmin pueden establecer o cambiar el valor de @owner_login_name. Si los usuarios que no son miembros del rol sysadmin establecen o cambian el valor de @owner_login_name, este procedimiento almacenado no se ejecuta correctamente y se devuelve un error.

  • [ @notify_level_eventlog = ] eventlog_level
    Valor que indica cuándo se debe incluir una entrada para este trabajo en el registro de aplicación de Microsoft Windows. eventlog_leveles de tipo int y puede tener uno de estos valores.

    Valor

    Descripción

    0

    Never

    1

    En caso de éxito

    2 (predeterminado)

    En caso de error

    3

    Always

  • [ @notify_level_email = ] email_level
    Valor que indica cuándo se debe enviar un mensaje de correo electrónico para notificar la finalización del trabajo. email_leveles de tipo int y su valor predeterminado es 0, lo que significa que nunca. email_levelutiliza los mismos valores que eventlog_level.

  • [ @notify_level_netsend = ] netsend_level
    Valor que indica cuándo se debe enviar un mensaje de red para notificar la finalización del trabajo. netsend_leveles de tipo int y su valor predeterminado es 0, lo que significa que nunca. netsend_level utiliza los mismos valores que eventlog_level.

  • [ @notify_level_page = ] page_level
    Valor que indica cuándo se debe enviar una página para notificar la finalización del trabajo. page_leveles de tipo int y su valor predeterminado es 0, lo que significa que nunca. page_levelutiliza los mismos valores que eventlog_level.

  • [ @notify_email_operator_name = ] 'email_name'
    Nombre de correo electrónico de la persona a la que se enviará un mensaje de correo electrónico cuando se alcance el valor de email_level. email_name es de tipo sysname y su valor predeterminado es NULL.

  • [ @notify_netsend_operator_name = ] 'netsend_name'
    Nombre del operador al que se enviará el mensaje de red al finalizar este trabajo. netsend_namees de tipo sysname y su valor predeterminado es NULL.

  • [ @notify_page_operator_name = ] 'page_name'
    Nombre de la persona a la que se enviará un mensaje por localizador al finalizar este trabajo. page_namees de tipo sysname y su valor predeterminado es NULL.

  • [ @delete_level = ] delete_level
    Valor que indica cuándo se va a eliminar el trabajo. delete_valuees de tipo int y su valor predeterminado es 0, lo que significa que nunca. delete_levelutiliza los mismos valores que eventlog_level.

    [!NOTA]

    Cuando delete_level es 3, el trabajo se ejecuta una sola vez, con independencia de las programaciones que se hayan definido para el mismo. Además, si un trabajo se elimina a sí mismo, también se elimina todo el historial de trabajos.

  • [ @job_id = ] job_idOUTPUT
    Número de identificación que se ha asignado al trabajo si este se ha creado correctamente. job_ides una variable de salida de tipo uniqueidentifier y su valor predeterminado es NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Ninguno

Comentarios

@originating_server existe en sp_add_job, pero no aparece en Argumentos. @originating_server se reserva para uso interno.

Después de haber ejecutado sp_add_job para agregar un trabajo, se puede usar sp_add_jobstep para agregar los pasos que realizan las actividades del trabajo. sp_add_jobschedule se puede utilizar para crear la programación que el servicio del Agente SQL Server utiliza para ejecutar el trabajo. Utilice sp_add_jobserver para establecer la instancia de SQL Server donde se ejecuta el trabajo y sp_delete_jobserver para quitar el trabajo de la instancia de SQL Server.

Si el trabajo se va a ejecutar en uno o varios servidores de destino en un entorno multiservidor, utilice sp_apply_job_to_targets para establecer los servidores de destino o los grupos de servidores de destino del trabajo. Para quitar trabajos de los servidores de destino o grupos de servidores de destino, utilice sp_remove_job_from_targets.

SQL Server Management Studio ofrece un método gráfico sencillo para administrar trabajos y es el método recomendado para crear y administrar la infraestructura de trabajo.

Permisos

Para ejecutar este procedimiento almacenado, los usuarios deben ser miembros del rol fijo de servidor sysadmin, o debe concedérseles uno de los siguientes roles fijos de base de datos del Agente SQL Server, que residen en la base de datos msdb.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Para obtener información sobre permisos específicos asociados a cada uno de estos roles fijos de base de datos, vea Roles fijos de base de datos del Agente SQL Server.

Solo los miembros del rol fijo de servidor sysadmin pueden establecer o cambiar el valor de @owner_login_name. Si los usuarios que no son miembros del rol sysadmin establecen o cambian el valor de @owner_login_name, este procedimiento almacenado no se ejecuta correctamente y se devuelve un error.

Ejemplos

A.Agregar un trabajo

En este ejemplo se agrega un nuevo trabajo denominado NightlyBackups.

USE msdb ;
GO

EXEC dbo.sp_add_job
    @job_name = N'NightlyBackups' ;
GO

B.Agregar un trabajo con la información de buscapersonas, correo electrónico y net send

En este ejemplo se crea un trabajo denominado Ad hoc Sales Data Backup que notifica a François Ajenstat (por medio de un mensaje emergente de red, buscapersonas o correo electrónico) si se produce algún error, y se elimina el trabajo si éste se realiza correctamente.

[!NOTA]

En este ejemplo se da por supuesto que ya existen un operador denominado François Ajenstat y un inicio de sesión denominado 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

Vea también

Referencia

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)

Procedimientos almacenados del sistema (Transact-SQL)