sp_add_schedule (Transact-SQL)sp_add_schedule (Transact-SQL)

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Crea una programación que puede ser utilizada por un número indeterminado de trabajos.Creates a schedule that can be used by any number of jobs.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax


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

ArgumentosArguments

[ @schedule_name = ] 'schedule_name'[ @schedule_name = ] 'schedule_name'
Nombre de la programación.The name of the schedule. schedule_namees sysname, no tiene ningún valor predeterminado.schedule_nameis sysname, with no default.

[ @enabled = ] habilitado[ @enabled = ] enabled
Indica el estado actual de la programación.Indicates the current status of the schedule. habilitadoes tinyint, su valor predeterminado es 1 (habilitado).enabledis tinyint, with a default of 1 (enabled). Si 0, la programación no está habilitada.If 0, the schedule is not enabled. Si la programación no está habilitada, no se ejecuta ningún trabajo en esta programación.When the schedule is not enabled, no jobs will run on this schedule.

[ @freq_type = ] freq_type[ @freq_type = ] freq_type
Valor que indica cuándo se va a ejecutar un trabajo.A value indicating when a job is to be executed. freq_typees int, su valor predeterminado es 0, y puede tener uno de estos valores.freq_typeis int, with a default of 0, and can be one of these values.

ValorValue DescripciónDescription
11 Una vezOnce
44 Cada díaDaily
88 Programación semanalWeekly
1616 Programación mensualMonthly
3232 Mensualmente, relativo a freq_intervalMonthly, relative to freq_interval
6464 Se ejecuta cuando se inicia el servicio SQLServerAgentRun when SQLServerAgent service starts
128128 Cuando el equipo esté inactivoRun when the computer is idle

[ @freq_interval = ] freq_interval[ @freq_interval = ] freq_interval
Días en que se ejecuta un trabajo.The days that a job is executed. freq_interval es int, su valor predeterminado es 1y depende del valor de freq_type.freq_interval is int, with a default of 1, and depends on the value of freq_type.

Valor de freq_typeValue of freq_type Efecto en freq_intervalEffect on freq_interval
1 (una vez)1 (once) freq_interval no se utiliza.freq_interval is unused.
4 (diariamente)4 (daily) Cada freq_interval días.Every freq_interval days.
8 (semanalmente)8 (weekly) freq_interval es uno o varios de los siguientes (combinados con un operador lógico OR):freq_interval is one or more of the following (combined with an OR logical operator):

1 = el domingo1 = Sunday

2 = el lunes2 = Monday

4 = el martes4 = Tuesday

8 = el miércoles8 = Wednesday

16 = el jueves16 = Thursday

32 = el viernes32 = Friday

64 = el sábado64 = Saturday
16 (mensualmente)16 (monthly) En el freq_interval día del mes.On the freq_interval day of the month.
32 (relativo mensual)32 (monthly relative) freq_interval es uno de los siguientes:freq_interval is one of the following:

1 = el domingo1 = Sunday

2 = el lunes2 = Monday

3 = el martes3 = Tuesday

4 = el miércoles4 = Wednesday

5 = el jueves5 = Thursday

6 = el viernes6 = Friday

7 = el sábado7 = Saturday

8 = día8 = Day

9 = día de la semana9 = Weekday

10 = día del fin de semana10 = Weekend day
64 (cuando inicia el servicio SQLServerAgent)64 (when SQLServerAgent service starts) freq_interval no se utiliza.freq_interval is unused.
128128 freq_interval no se utiliza.freq_interval is unused.

[ @freq_subday_type = ] freq_subday_type[ @freq_subday_type = ] freq_subday_type
Especifica las unidades de freq_subday_interval.Specifies the units for freq_subday_interval. freq_subday_typees int, su valor predeterminado es 0, y puede tener uno de estos valores.freq_subday_typeis int, with a default of 0, and can be one of these values.

ValorValue Descripción (unidad)Description (unit)
0 x 10x1 A la hora especificadaAt the specified time
0 x 20x2 SegundosSeconds
0 x 40x4 MinutosMinutes
0 x 80x8 HorasHours

[ @freq_subday_interval = ] freq_subday_interval[ @freq_subday_interval = ] freq_subday_interval
El número de freq_subday_type períodos que transcurren entre cada ejecución de un trabajo.The number of freq_subday_type periods to occur between each execution of a job. freq_subday_intervales int, su valor predeterminado es 0.freq_subday_intervalis int, with a default of 0. Nota: el intervalo debe ser mayor que 10 segundos.Note: Interval should be longer than 10 seconds. freq_subday_interval se omite en los casos donde freq_subday_type es igual a 1.freq_subday_interval is ignored in those cases where freq_subday_type is equal to 1.

[ @freq_relative_interval = ] freq_relative_interval[ @freq_relative_interval = ] freq_relative_interval
Aparición de un trabajo de freq_interval cada mes, si freq_interval es 32 (relativo mensual).A job's occurrence of freq_interval in each month, if freq_interval is 32 (monthly relative). freq_relative_intervales int, su valor predeterminado es 0, y puede tener uno de estos valores.freq_relative_intervalis int, with a default of 0, and can be one of these values. freq_relative_interval se omite en los casos donde freq_type no es igual a 32.freq_relative_interval is ignored in those cases where freq_type is not equal to 32.

ValorValue Descripción (unidad)Description (unit)
11 PrimeroFirst
22 SecondSecond
44 TerceroThird
88 CuartoFourth
1616 ÚltimoLast

[ @freq_recurrence_factor = ] freq_recurrence_factor[ @freq_recurrence_factor = ] freq_recurrence_factor
Número de semanas o meses entre las ejecuciones programadas de un trabajo.The number of weeks or months between the scheduled execution of a job. freq_recurrence_factor solo se utiliza si freq_type es 8, 16, o 32.freq_recurrence_factor is used only if freq_type is 8, 16, or 32. freq_recurrence_factores int, su valor predeterminado es 0.freq_recurrence_factoris int, with a default of 0.

[ @active_start_date = ] active_start_date[ @active_start_date = ] active_start_date
La fecha en la que puede comenzar la ejecución de un trabajo.The date on which execution of a job can begin. active_start_datees int, su valor predeterminado es null, lo que indica la fecha de hoy.active_start_dateis int, with a default of NULL, which indicates today's date. La fecha tiene el formato AAAAMMDD.The date is formatted as YYYYMMDD. Si active_start_date no es NULL, la fecha debe ser mayor o igual a 19900101.If active_start_date is not NULL, the date must be greater than or equal to 19900101.

Una vez creada la programación, revise la fecha de inicio y confirme que es correcta.After the schedule is created, review the start date and confirm that it is the correct date. Para obtener más información, vea la sección "Programar fechas de inicio" en crear y adjuntar programaciones a trabajos.For more information, see the section "Scheduling Start Date" in Create and Attach Schedules to Jobs.

En las programaciones semanales o mensuales, el agente desconoce si active_start_date corresponde al pasado, y en su lugar utiliza la fecha actual.For weekly or monthly schedules, the Agent ignores if active_start_date is in the past, and instead uses the current date. 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.When a SQL Agent schedule is created using sp_add_schedule there is an option to specify the parameter active_start_date that is the date that job execution will begin. 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.If the schedule type is weekly or monthly and the active_start_date parameter is set to a date in the past, the active_start_date parameter is ignored and the current date will be used for active_start_date.

[ @active_end_date = ] active_end_date[ @active_end_date = ] active_end_date
Fecha en la que puede detenerse la ejecución de un trabajo.The date on which execution of a job can stop. active_end_datees int, su valor predeterminado es 99991231, lo que indica el 31 de diciembre de 9999.active_end_dateis int, with a default of 99991231, which indicates December 31, 9999. Tiene el formato AAAAMMDD.Formatted as YYYYMMDD.

[ @active_start_time = ] active_start_time[ @active_start_time = ] active_start_time
La hora de un día entre active_start_date y active_end_date para comenzar la ejecución de un trabajo.The time on any day between active_start_date and active_end_date to begin execution of a job. active_start_timees int, su valor predeterminado es 000000, lo que indica 12:00:00 A.M.active_start_timeis int, with a default of 000000, which indicates 12:00:00 A.M. en un reloj de 24 horas. Se debe especificar con el formato HHMMSS.on a 24-hour clock, and must be entered using the form HHMMSS.

[ @active_end_time = ] active_end_time[ @active_end_time = ] active_end_time
La hora de un día entre active_start_date y active_end_date para finalizar la ejecución de un trabajo.The time on any day between active_start_date and active_end_date to end execution of a job. active_end_timees int, su valor predeterminado es 235959, lo que indica 11:59:59 p. M.active_end_timeis int, with a default of 235959, which indicates 11:59:59 P.M. en un reloj de 24 horas. Se debe especificar con el formato HHMMSS.on a 24-hour clock, and must be entered using the form HHMMSS.

[ @owner_login_name =] 'owner_login_name'[ @owner_login_name= ] 'owner_login_name'
Nombre de la entidad de seguridad del servidor a la que pertenece la programación.The name of the server principal that owns the schedule. owner_login_name es sysname, su valor predeterminado es null, lo que indica que la programación pertenece al creador.owner_login_name is sysname, with a default of NULL, which indicates that the schedule is owned by the creator.

[ @schedule_uid =] valor schedule_uidsalida[ @schedule_uid= ] schedule_uidOUTPUT
Es un identificador único para la programación.A unique identifier for the schedule. valor schedule_uid es una variable de tipo uniqueidentifier.schedule_uid is a variable of type uniqueidentifier.

[ @schedule_id =] schedule_idsalida[ @schedule_id= ] schedule_idOUTPUT
Identificador de la programación.An identifier for the schedule. schedule_id es una variable de tipo int.schedule_id is a variable of type int.

[ @originating_server =] nombre_servidor[ @originating_server= ] server_name
Solamente se identifica con fines informativos.Identified for informational purposes only. No compatible.Not supported. La compatibilidad con versiones posteriores no está garantizada.Future compatibility is not guaranteed.

Valores de código de retornoReturn Code Values

0 (correcto) o 1 (error)0 (success) or 1 (failure)

Conjuntos de resultadosResult Sets

NingunoNone

ComentariosRemarks

SQL Server Management StudioSQL 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. provides an easy, graphical way to manage jobs, and is the recommended way to create and manage the job infrastructure.

PermissionsPermissions

De forma predeterminada, los miembros del rol fijo de servidor sysadmin pueden ejecutar este procedimiento almacenado.By default, members of the sysadmin fixed server role can execute this stored procedure. Al resto de usuarios se les debe conceder uno de los siguientes roles fijos de base de datos del Agente SQL ServerSQL Server en la base de datos msdb :Other users must be granted one of the following SQL ServerSQL Server Agent fixed database roles in the msdb database:

EjemplosExamples

A.A. Crear una programaciónCreating a schedule

En el siguiente ejemplo se crea una programación llamada RunOnce.The following example creates a schedule named RunOnce. La programación se ejecuta una vez a las 23:30 el día en que se ha creado la programación.The schedule runs one time, at 23:30 on the day that the schedule is created.

USE msdb ;  
GO  

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

GO  

B.B. Crear una programación y adjuntarla a varios trabajosCreating a schedule, attaching the schedule to multiple jobs

En el siguiente ejemplo se crea una programación llamada NightlyJobs.The following example creates a schedule named NightlyJobs. Los trabajos que usan esta programación se ejecutan a diario cuando la hora del servidor es 01:00.Jobs that use this schedule execute every day when the time on the server is 01:00. En el ejemplo se asocia la programación a los trabajos BackupDatabase y RunReports.The example attaches the schedule to the job BackupDatabase and the job RunReports.

Nota

En este ejemplo se da por supuesto que el trabajo BackupDatabase y el trabajo RunReports ya existen.This example assumes that the job BackupDatabase and the job RunReports already exist.

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énSee Also

Crear y adjuntar programaciones a trabajos Create and Attach Schedules to Jobs
Programar un trabajo Schedule a Job
Crear una programación Create a Schedule
Agente SQL Server almacena procedimientos ( Transact-SQL ) SQL Server Agent Stored Procedures (Transact-SQL)
sp_add_jobschedule ( Transact-SQL ) sp_add_jobschedule (Transact-SQL)
sp_update_schedule ( Transact-SQL ) sp_update_schedule (Transact-SQL)
sp_delete_schedule ( Transact-SQL ) sp_delete_schedule (Transact-SQL)
sp_help_schedule ( Transact-SQL ) sp_help_schedule (Transact-SQL)
sp_attach_schedule (Transact-SQL)sp_attach_schedule (Transact-SQL)