Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

sp_add_schedule vs sp_add_jobschedule w programie SQL Server:jaka jest różnica?

Jeśli jesteś w trakcie tworzenia zadania SQL Server Agent za pomocą T-SQL, możesz zastanawiać się, czy utworzyć jego harmonogram za pomocą sp_add_schedule procedura składowana lub sp_add_jobschedule procedura.

Oto krótkie wyjaśnienie różnicy między tymi dwiema procedurami.

Różnica

  • sp_add_schedule procedura tworzy harmonogram, ale nie dołącza go do żadnych zadań. Aby to zrobić, musisz użyć sp_attach_schedule procedura.
  • sp_add_jobschedule procedura tworzy harmonogram i dołącza go do danego zadania za jednym razem.

Dlatego sp_add_jobschedule jest w porządku, jeśli chcesz utworzyć nowy harmonogram dla określonego zadania, a to zadanie już istnieje. Jeśli tworzysz harmonogram dla wielu zadań, a żadne z nich jeszcze nie istnieje, możesz użyć sp_add_schedule . Następnie możesz użyć sp_attach_schedule aby później dołączyć go do swoich zadań.

Ale to nie znaczy, że nie możesz użyć sp_add_schedule zamiast sp_add_jobschedule jeśli praca już istnieje.

Korzystanie z sp_add_schedule (w połączeniu z sp_attach_schedule ) pozwala oddzielić proces tworzenia harmonogramów i dołączania ich do zleceń. Nadal możesz używać tego zestawu, nawet podczas tworzenia pojedynczego zadania z jednym harmonogramem.

Innymi słowy, możesz użyć sp_add_schedule zamiast sp_add_jobschedule dla wszystkich zadań agenta SQL Server.

Przykład

sp_add_jobschedule Procedura

sp_add_jobschedule Procedura tworzy harmonogram dla danego zadania SQL Server Agent. Wywołując tę ​​procedurę, musisz podać nazwę lub identyfikator stanowiska, do którego chcesz się zastosować.

Zasadniczo ta procedura tworzy harmonogram i dołącza go do pojedynczego zadania.

Oto przykład tworzenia zadania i korzystania z sp_add_jobschedule procedura składowana:

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;

Kiedy spojrzysz na sp_add_jobschedule procedura, @job_name argument podaje nazwę zadania. @name argument zawiera nazwę, którą chcesz nadać harmonogramowi.

sp_add_schedule Procedura

sp_add_schedule Procedura umożliwia tworzenie harmonogramu bez konieczności określania zadania, do którego ma zostać dołączony.

Ta procedura tworzy harmonogram, ale nie dołącza go do żadnych zadań. Aby dołączyć go do zadania, musisz użyć sp_attach_schedule procedura.

Oto przykład:

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

Gdy używasz sp_attach_schedule , musisz podać nazwę zadania lub jego identyfikator (ale nie oba), a także nazwę harmonogramu lub identyfikator (ale nie oba).

Dołączanie sp_add_jobschedule Harmonogram

Należy pamiętać, że sp_attach_schedule może dołączyć harmonogramy, które zostały utworzone za pomocą obu sp_add_schedule i z sp_add_jobschedule .

Innymi słowy, tworzenie harmonogramu za pomocą sp_add_jobschedule nie ogranicza go tylko do zadania określonego podczas tworzenia harmonogramu. nadal można go dołączyć do innych zadań później za pomocą 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. Dodawanie wielu sparametryzowanych zmiennych do bazy danych w c#

  2. Jak rozszerzyć wartości oddzielone przecinkami do oddzielnych wierszy przy użyciu programu SQL Server 2005?

  3. Jak naprawić „Powiązana funkcja partycji generuje więcej partycji niż jest grup plików wymienionych w schemacie” Msg 7707 w SQL Server

  4. Logowanie nie powiodło się dla użytkownika „DOMAIN\MACHINENAME$”

  5. Jak przekazać zmienną null do procedury składowanej SQL z kodu C#.net?