Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

sp_add_schedule срещу sp_add_jobschedule в SQL Server:Каква е разликата?

Ако сте в процес на създаване на задание на 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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранявайте множество битови стойности в една колона на таблицата

  2. След блокиране на една транзакция между версиите на SQL Server

  3. Конфигурации с обхват на базата данни на SQL Server и автоматична корекция на план

  4. Как да изпълним SSIS пакет от .NET?

  5. Можем ли да предадем параметри на изглед в SQL?