sp_add_jobschedule (Transact-SQL)
Se aplica a: SQL Server Azure SQL Instancia administrada
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 0
es , 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 0
y 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 = Domingo2 = Lunes4 = Martes8 = miércoles16 = Jueves32 = Viernes64 = Sábado |
16 (mensual) |
En el @freq_interval día del mes. |
32 (relativa mensual) |
@freq_interval es uno de los siguientes:1 = Domingo2 = Lunes3 = Martes4 = miércoles5 = Jueves6 = Viernes7 = Sábado8 = Día9 = Día de la semana10 = 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 2
en , @freq_type se establece 32
en y @freq_interval se establece 3
en , 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 8
en , 16
o 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
Este procedimiento almacenado es propiedad del rol db_owner . Puede conceder EXECUTE
permisos para cualquier usuario, 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
Contenido relacionado
- Crear y adjuntar programaciones a trabajos
- Programar un trabajo
- Create a Schedule
- Agente SQL Server procedimientos almacenados (Transact-SQL)
- sp_add_schedule (Transact-SQL)
- sp_update_schedule (Transact-SQL)
- sp_delete_schedule (Transact-SQL)
- sp_help_schedule (Transact-SQL)
- sp_attach_schedule (Transact-SQL)