Si está en el proceso de crear un trabajo del Agente SQL Server con T-SQL, es posible que se pregunte si debe crear su programación con sp_add_schedule
procedimiento almacenado o el sp_add_jobschedule
procedimiento.
Aquí hay una explicación rápida de la diferencia entre estos dos procedimientos.
La diferencia
- El
sp_add_schedule
El procedimiento crea un programa, pero no lo adjunta a ningún trabajo. Para hacer eso, necesita usar elsp_attach_schedule
procedimiento. - El
sp_add_jobschedule
El procedimiento crea el programa y lo adjunta a un trabajo determinado, todo de una sola vez.
Por lo tanto, sp_add_jobschedule
está bien si necesita crear una nueva programación para un trabajo específico y ese trabajo ya existe. Si está creando un cronograma para varios trabajos y ninguno de ellos existe todavía, puede usar sp_add_schedule
. Entonces puedes usar sp_attach_schedule
para adjuntarlo a sus trabajos más tarde.
Pero eso no quiere decir que no puedas usar sp_add_schedule
en lugar de sp_add_jobschedule
si el trabajo ya existe.
Usando sp_add_schedule
(junto con sp_attach_schedule
) le permite separar el proceso de creación de horarios y adjuntarlos a los trabajos. Todavía puede usar este combo incluso cuando crea un solo trabajo con un solo horario.
En otras palabras, puede usar sp_add_schedule
en lugar de sp_add_jobschedule
para todos sus trabajos del Agente SQL Server.
Ejemplo
El sp_add_jobschedule
Procedimiento
El sp_add_jobschedule
El procedimiento crea una programación para un trabajo del Agente SQL Server determinado. Cuando llame a este procedimiento, debe proporcionar el nombre o la identificación de un trabajo al que desea aplicar.
Básicamente, este procedimiento crea un cronograma y lo adjunta a un solo trabajo.
Aquí hay un ejemplo de cómo crear un trabajo y usar sp_add_jobschedule
procedimiento almacenado:
EXEC sp_add_jobschedule
@job_name = N'BackupMusicDB',
@name = N'Weekly_Sun_3AM',
@freq_type = 8,
@freq_interval = 1,
@freq_recurrence_factor = 1,
@active_start_time = 30000;
Cuando miras el sp_add_jobschedule
procedimiento, el @job_name
argumento proporciona el nombre del trabajo. El @name
argumento proporciona el nombre que desea dar a la programación.
El sp_add_schedule
Procedimiento
El sp_add_schedule
El procedimiento le permite crear un programa sin tener que especificar un trabajo para adjuntarlo.
Este procedimiento crea el cronograma, pero no lo adjunta a ningún trabajo. Para adjuntarlo a un trabajo, debe usar el sp_attach_schedule
procedimiento.
He aquí un ejemplo:
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
Cuando usa sp_attach_schedule
, debe proporcionar el nombre del trabajo o su Id. (pero no ambos), así como el nombre o Id. del programa (pero no ambos).
Adjuntar un sp_add_jobschedule
Horario
Es importante tener en cuenta que sp_attach_schedule
puede adjuntar horarios que se crearon con ambos sp_add_schedule
y con sp_add_jobschedule
.
En otras palabras, crear un horario con sp_add_jobschedule
no lo restringe solo al trabajo que especificó al crear el programa. todavía está disponible para adjuntarse a otros trabajos más tarde usando sp_attach_schedule
.