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_scheduleEl procedimiento crea un programa, pero no lo adjunta a ningún trabajo. Para hacer eso, necesita usar elsp_attach_scheduleprocedimiento. - El
sp_add_jobscheduleEl 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 .