sp_add_schedule (Transact-SQL)

Crea una programación que puede ser utilizada por un número indeterminado de trabajos.

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

Sintaxis

sp_add_schedule [ @schedule_name = ] 'schedule_name' 
    [ , [ @enabled = ] enabled ]
    [ , [ @freq_type = ] freq_type ]
    [ , [ @freq_interval = ] freq_interval ] 
    [ , [ @freq_subday_type = ] freq_subday_type ] 
    [ , [ @freq_subday_interval = ] freq_subday_interval ] 
    [ , [ @freq_relative_interval = ] freq_relative_interval ] 
    [ , [ @freq_recurrence_factor = ] freq_recurrence_factor ] 
    [ , [ @active_start_date = ] active_start_date ] 
    [ , [ @active_end_date = ] active_end_date ] 
    [ , [ @active_start_time = ] active_start_time ] 
    [ , [ @active_end_time = ] active_end_time ] 
    [ , [ @owner_login_name = ] 'owner_login_name' ]
    [ , [ @schedule_uid = ] schedule_uid OUTPUT ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @originating_server = ] server_name ] /* internal */

Argumentos

  • [ @schedule_name = ] 'schedule_name'
    Nombre de la programación. schedule_namees de tipo sysname y no tiene valor predeterminado.

  • [ @enabled = ] enabled
    Indica el estado actual de la programación. enabledes de tipo tinyint y su valor predeterminado es 1 (habilitado). Si el valor es 0, la programación no está habilitada. Si la programación no está habilitada, no se ejecuta ningún trabajo en esta programación.

  • [ @freq_type = ] freq_type
    Valor que indica cuándo se va a ejecutar un trabajo. freq_typees de tipo int, su valor predeterminado es 0 y puede tener uno de estos valores.

    Valor

    Descripción

    1

    Una vez

    4

    Diariamente

    8

    Semanalmente

    16

    Mensualmente

    32

    Mensualmente, con relación a freq_interval

    64

    Se ejecuta cuando se inicia el servicio SQLServerAgent

    128

    Se ejecuta cuando el equipo está inactivo

  • [ @freq_interval = ] freq_interval
    Días en que se ejecuta un trabajo. freq_interval es de tipo int, su valor predeterminado es 1 y depende del valor de freq_type.

    Valor de freq_type

    Efecto en freq_interval

    1 (una vez)

    freq_interval no se utiliza.

    4 (diariamente)

    Cada freq_interval días.

    8 (semanalmente)

    freq_interval es uno o más de los siguientes (combinados con un operador lógico OR):

    1 = Domingo

    2 = Lunes

    4 = Martes

    8 = Miércoles

    16 = Jueves

    32 = Viernes

    64 = Sábado

    16 (mensualmente)

    En el día freq_interval del mes.

    32 (relativo mensual)

    freq_interval es uno de los siguientes:

    1 = Domingo

    2 = Lunes

    3 = Martes

    4 = Miércoles

    5 = Jueves

    6 = Viernes

    7 = Sábado

    8 = Día

    9 = Día de la semana

    10 = Día del fin de semana

    64 (cuando se inicia el servicio SQLServerAgent)

    freq_interval no se utiliza.

    128

    freq_interval no se utiliza.

  • [ @freq_subday_type = ] freq_subday_type
    Especifica las unidades de freq_subday_interval. freq_subday_typees de tipo int, su valor predeterminado es 0 y puede tener uno de estos valores.

    Valor

    Descripción (unidad)

    0x1

    A la hora especificada

    0x2

    Segundos

    0x4

    Minutos

    0x8

    Horas

  • [ @freq_subday_interval = ] freq_subday_interval
    Número de períodos de freq_subday_type que deben transcurrir entre cada ejecución de un trabajo. freq_subday_intervales de tipo int y su valor predeterminado es 0. Nota: el intervalo debe ser mayor que 10 segundos. freq_subday_interval se omite en los casos en que freq_subday_type es igual a 1.

  • [ @freq_relative_interval = ] freq_relative_interval
    Número de repeticiones de freq_interval del trabajo cada mes, si freq_interval es 32 (relativo mensual). freq_relative_intervales de tipo int, su valor predeterminado es 0 y puede tener uno de estos valores. freq_relative_interval se omite en los casos en que freq_type no es igual a 32.

    Valor

    Descripción (unidad)

    1

    Primero

    2

    Segundo

    4

    Tercero

    8

    Cuarto

    16

    Último

  • [ @freq_recurrence_factor = ] freq_recurrence_factor
    Número de semanas o meses entre las ejecuciones programadas de un trabajo. freq_recurrence_factor solo se utiliza si freq_type es 8, 16 o 32. freq_recurrence_factores de tipo int y su valor predeterminado es 0.

  • [ @active_start_date = ] active_start_date
    Fecha en la que puede comenzar la ejecución de un trabajo. active_start_datees de tipo int y su valor predeterminado es NULL, lo que indica la fecha de hoy. La fecha tiene el formato AAAAMMDD. Si active_start_date no es NULL, la fecha tiene que ser posterior o igual a 19900101.

    Una vez creada la programación, revise la fecha de inicio y confirme que es correcta. Para obtener más información, vea la sección "Programar fechas de inicio" de Crear y adjuntar programaciones a trabajos.

    En las programaciones semanales o mensuales, el agente desconoce si active_start_date corresponde al pasado, y en su lugar utiliza la fecha actual. Cuando se crea una programación del Agente SQL mediante sp_add_schedule, existe la opción de especificar el parámetro active_start_date, que es la fecha en la que comenzará la ejecución del trabajo. Si el tipo de programación es semanal o mensual y el parámetro active_start_date se establece en una fecha en el pasado, se hace caso omiso de dicho parámetro y se utilizará en su lugar la fecha actual.

  • [ @active_end_date = ] active_end_date
    Fecha en la que puede detenerse la ejecución de un trabajo. active_end_datees de tipo int y su valor predeterminado es 99991231, lo que indica 31 de diciembre de 9999. Tiene el formato AAAAMMDD.

  • [ @active_start_time = ] active_start_time
    Hora de un día entre active_start_date y active_end_date en que comienza la ejecución de un trabajo. active_start_timees de tipo int y su valor predeterminado es 000000, lo que indica 12:00:00 a.m. en un reloj de 24 horas. Se debe especificar con el formato HHMMSS.

  • [ @active_end_time = ] active_end_time
    Hora de un día entre active_start_date y active_end_date en que finaliza la ejecución de un trabajo. active_end_timees de tipo int y su valor predeterminado es 235959, lo que indica 11:59:59 p.m. en un reloj de 24 horas. Se debe especificar con el formato HHMMSS.

  • [ @owner_login_name= ] 'owner_login_name'
    Nombre de la entidad de seguridad del servidor a la que pertenece la programación. owner_login_name es de tipo sysname y su valor predeterminado es NULL, lo que indica que la programación pertenece al creador.

  • [ @schedule_uid= ] schedule_uidOUTPUT
    Es un identificador único para la programación. schedule_uid es una variable de tipo uniqueidentifier.

  • [ @schedule_id= ] schedule_idOUTPUT
    Identificador de la programación. schedule_id es una variable de tipo int.

  • [ @originating_server= ] server_name
    Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Ninguno

Comentarios

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

De forma predeterminada, los miembros del rol fijo de servidor sysadmin pueden ejecutar este procedimiento almacenado. Al resto de usuarios se les debe conceder uno de los siguientes roles fijos de base de datos del Agente SQL Server en la base de datos msdb:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Para obtener más información acerca de los permisos de estos roles, vea Roles fijos de base de datos del Agente SQL Server.

Ejemplos

A.Crear una programación

En el siguiente ejemplo se crea una programación llamada RunOnce. La programación se ejecuta una vez a las 23:30 el día en que se ha creado la programación.

USE msdb ;
GO

EXEC dbo.sp_add_schedule
    @schedule_name = N'RunOnce',
    @freq_type = 1,
    @active_start_time = 233000 ;

GO

B.Crear una programación y adjuntarla a varios trabajos

En el siguiente ejemplo se crea una programación llamada NightlyJobs. Los trabajos que usan esta programación se ejecutan a diario cuando la hora del servidor es 01:00. En el ejemplo se asocia la programación a los trabajos BackupDatabase y RunReports.

[!NOTA]

En este ejemplo se da por supuesto que el trabajo BackupDatabase y el trabajo RunReports ya existen.

USE msdb ;
GO

EXEC sp_add_schedule
    @schedule_name = N'NightlyJobs' ,
    @freq_type = 4,
    @freq_interval = 1,
    @active_start_time = 010000 ;
GO


EXEC sp_attach_schedule
   @job_name = N'BackupDatabase',
   @schedule_name = N'NightlyJobs' ;
GO

EXEC sp_attach_schedule
   @job_name = N'RunReports',
   @schedule_name = N'NightlyJobs' ;
GO

Vea también

Referencia

Procedimientos almacenados del Agente SQL Server (Transact-SQL)

sp_add_jobschedule (Transact-SQL)

sp_update_schedule (Transact-SQL)

sp_delete_schedule (Transact-SQL)

sp_help_schedule (Transact-SQL)

sp_attach_schedule (Transact-SQL)

Conceptos

Crear y adjuntar programaciones a trabajos

Programar un trabajo

Crear una programación