Ако сте в процес на създаване на задание на SQL Server Agent с T-SQL, може да се чудите дали да създадете неговия график с sp_add_schedule
съхранена процедура или sp_add_jobschedule
процедура.
Ето кратко обяснение на разликата между тези две процедури.
Разликата
sp_add_schedule
процедура създава график, но не го прикачва към никакви работни места. За да направите това, трябва да използватеsp_attach_schedule
процедура.sp_add_jobschedule
процедура създава графика и го прикачва към дадено задание, всичко наведнъж.
Следователно, sp_add_jobschedule
е добре да се използва, ако трябва да създадете нов график за конкретна работа и това задание вече съществува. Ако създавате график за няколко работни места и нито една от тях все още не съществува, можете да използвате sp_add_schedule
. След това можете да използвате sp_attach_schedule
за да го прикачите към работните си места по-късно.
Но това не означава, че не можете да използвате sp_add_schedule
вместо sp_add_jobschedule
ако работата вече съществува.
Използване на sp_add_schedule
(във връзка с sp_attach_schedule
) ви позволява да разделите процеса на създаване на графици и прикачването им към работни места. Все още можете да използвате тази комбинация дори когато създавате едно задание с един график.
С други думи, можете да използвате sp_add_schedule
вместо sp_add_jobschedule
за всички ваши задачи на SQL Server Agent.
Пример
sp_add_jobschedule
Процедура
sp_add_jobschedule
процедура създава график за дадено задание на SQL Server Agent. Когато извикате тази процедура, трябва да предоставите името или идентификатора на задание, към което искате да се прилага.
По принцип тази процедура създава график и го прикачва към едно задание.
Ето пример за създаване на работа и използване на sp_add_jobschedule
съхранена процедура:
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;
Когато погледнете sp_add_jobschedule
процедура, @job_name
аргумент предоставя името на заданието. @name
аргумент предоставя името, което искате да дадете на графика.
sp_add_schedule
Процедура
sp_add_schedule
процедурата ви позволява да създадете график, без да е необходимо да посочвате задание, към което да го прикачите.
Тази процедура създава графика, но не го прикачва към никакви задачи. За да го прикачите към задание, трябва да използвате sp_attach_schedule
процедура.
Ето един пример:
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
Когато използвате sp_attach_schedule
, трябва да предоставите името на заданието или неговия идентификатор (но не и двете), както и името или идентификатора на графика (но не и двете).
Прикачване на sp_add_jobschedule
График
Важно е да се отбележи, че sp_attach_schedule
може да прикачи графици, които са създадени както с sp_add_schedule
и с sp_add_jobschedule
.
С други думи, създаване на график с sp_add_jobschedule
не го ограничава само до заданието, което сте посочили при създаване на графика. все още е наличен за прикачване към други работни места по-късно с помощта на sp_attach_schedule
.