Compartir a través de


sp_add_jobschedule (Transact-SQL)

Se aplica a: SQL Server Azure SQL Managed Instance

Crea una programación para un trabajo de Agente SQL Server.

Convenciones de sintaxis de Transact-SQL

Importante

En Azure SQL Managed Instance, actualmente son compatibles la mayoría de las características del Agente SQL Server. Consulte Diferencias entre T-SQL de Azure SQL Managed Instance y SQL Server para más información.

Sintaxis

sp_add_jobschedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    , [ @name = ] N'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 ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @automatic_post = ] automatic_post ]
    [ , [ @schedule_uid = ] 'schedule_uid' OUTPUT ]
[ ; ]

Argumentos

[ @job_id = ] 'job_id'

Número de identificación del trabajo al que se va a agregar la programación. @job_id es uniqueidentifier, con un valor predeterminado de NULL.

Se deben especificar @job_id o @job_name , pero no se pueden especificar ambos.

[ @job_name = ] N'job_name'

Nombre del trabajo al que se va a agregar la programación. @job_name es sysname, con un valor predeterminado de NULL.

Se deben especificar @job_id o @job_name , pero no se pueden especificar ambos.

[ @name = ] N'name'

Nombre de la programación. @name es sysname, sin ningún valor predeterminado.

[ @enabled = ] enabled

Indica el estado actual de la programación. @enabled es tinyint, con un valor predeterminado de 1 (habilitado). Si 0es , la programación no está habilitada. Cuando la programación está deshabilitada, el trabajo no se ejecuta.

[ @freq_type = ] freq_type

Valor que indica cuándo se va a ejecutar el trabajo. @freq_type es int y puede ser uno de los siguientes valores:

Valor Descripción
1 Una vez
4 Diario
8 Semanal
16 Mensual
32 Mensual, en relación con @freq_interval.
64 Ejecute cuando se inicie el servicio Agente SQL Server.
128 Se ejecuta cuando el equipo está inactivo.

[ @freq_interval = ] freq_interval

Día en que se ejecuta el trabajo. @freq_interval es int, con un valor predeterminado de 0y depende del valor de @freq_type tal como se indica en la tabla siguiente:

Valor de @freq_type Efecto en @freq_interval
1 (una vez) @freq_interval no se usa.
4 (diario) Cada @freq_interval días.
8 (semanal) @freq_interval es uno o varios de los siguientes (combinados con un OR operador lógico):

1 = Domingo
2 = Lunes
4 = Martes
8 = miércoles
16 = Jueves
32 = Viernes
64 = Sábado
16 (mensual) En el @freq_interval día del mes.
32 (relativa 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 Agente SQL Server) @freq_interval no se usa.
128 @freq_interval no se usa.

[ @freq_subday_type = ] freq_subday_type

Especifica las unidades de @freq_subday_interval. @freq_subday_type es int y puede ser 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 se van a producir entre cada ejecución del trabajo. @freq_subday_interval es int, con un valor predeterminado de 0.

[ @freq_relative_interval = ] freq_relative_interval

Define aún más el @freq_interval cuando @freq_type se establece 32 en (relativo mensual).

@freq_relative_interval es int y puede ser uno de estos valores:

Valor Descripción (unidad)
1 Primero
2 Segundo
4 Tercero
8 Cuarta
16 Último

@freq_relative_interval indica la aparición del intervalo. Por ejemplo, si @freq_relative_interval está establecido 2en , @freq_type se establece 32en y @freq_interval se establece 3en , el trabajo programado se produciría el segundo martes de cada mes.

[ @freq_recurrence_factor = ] freq_recurrence_factor

Número de semanas o meses entre las ejecuciones programadas del trabajo. @freq_recurrence_factor es int, con un valor predeterminado de 0. @freq_recurrence_factor solo se usa si @freq_type está establecido 8en , 16o 32.

[ @active_start_date = ] active_start_date

Fecha en la que se puede iniciar la ejecución del trabajo. @active_start_date es int, con un valor predeterminado de NULL. La fecha tiene el formato yyyyMMdd. Si se establece @active_start_date , la fecha debe ser mayor o igual que 19900101.

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

[ @active_end_date = ] active_end_date

Fecha en la que se puede detener la ejecución del trabajo. @active_end_date es int, con un valor predeterminado de 99991231. La fecha tiene el formato yyyyMMdd.

[ @active_start_time = ] active_start_time

Hora en cualquier día entre @active_start_date y @active_end_date para iniciar la ejecución del trabajo. @active_start_time es int, con un valor predeterminado de 000000. La hora tiene el formato HHmmss de reloj de 24 horas.

[ @active_end_time = ] active_end_time

Hora en cualquier día entre active_start_date y @active_end_date para finalizar la ejecución del trabajo. @active_end_time es int, con un valor predeterminado de 235959. La hora tiene el formato HHmmss de reloj de 24 horas.

[ @schedule_id = ] schedule_id OUTPUT

Programe el número de identificación asignado a la programación si se crea correctamente. @schedule_id es un parámetro OUTPUT de tipo int.

[ @automatic_post = ] automatic_post

Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

[ @schedule_uid = ] SALIDA 'schedule_uid'

Es un identificador único para la programación. @schedule_uid es un parámetro OUTPUT de tipo uniqueidentifier.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Ninguno.

Comentarios

Ahora, las programaciones de trabajos se pueden administrar independientemente de los trabajos. Para agregar una programación a un trabajo, use sp_add_schedule para crear la programación y sp_attach_schedule adjuntar la programación a un trabajo.

Permisos

Puede conceder EXECUTE permisos en este procedimiento, pero estos permisos se pueden invalidar durante una actualización de SQL Server.

A otros usuarios se les debe conceder uno de los siguientes Agente SQL Server roles fijos de base de datos en la msdb base de datos:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Para detalles sobre los permisos de estos roles, consulte Roles fijos de base de datos del Agente SQL Server.

Ejemplos

En el ejemplo siguiente se asigna una programación de trabajo a SaturdayReports, que se ejecuta cada sábado a las 2:00 a. m.

EXEC msdb.dbo.sp_add_jobschedule
    @job_name = N'SaturdayReports', -- Job name
    @name = N'Weekly_Sat_2AM', -- Schedule name
    @freq_type = 8, -- Weekly
    @freq_interval = 64, -- Saturday
    @freq_recurrence_factor = 1, -- every week
    @active_start_time = 20000 -- 2:00 AM