Als u bezig bent met het maken van een SQL Server Agent-taak met T-SQL, vraagt u zich misschien af of u de bijbehorende planning wilt maken met de sp_add_schedule
opgeslagen procedure of de sp_add_jobschedule
procedure.
Hier volgt een korte uitleg van het verschil tussen deze twee procedures.
Het verschil
- De
sp_add_schedule
procedure maakt een planning aan, maar koppelt deze niet aan taken. Om dat te doen, moet je desp_attach_schedule
. gebruiken procedure. - Het
sp_add_jobschedule
procedure maakt het schema en koppelt het aan een bepaalde taak, alles in één keer.
Daarom sp_add_jobschedule
is OK om te gebruiken als u een nieuw schema voor een specifieke taak moet maken en die taak al bestaat. Als u een planning maakt voor meerdere taken en er bestaat nog geen van deze, kunt u sp_add_schedule
gebruiken . Dan kun je sp_attach_schedule
. gebruiken om het later aan uw taken toe te voegen.
Maar dat wil niet zeggen dat je sp_add_schedule
niet kunt gebruiken in plaats van sp_add_jobschedule
als de baan al bestaat.
sp_add_schedule
gebruiken (in combinatie met sp_attach_schedule
) kunt u het proces van het maken van schema's en het koppelen ervan aan taken scheiden. U kunt deze combinatie nog steeds gebruiken, zelfs als u een enkele taak maakt met een enkele planning.
Met andere woorden, u kunt sp_add_schedule
. gebruiken in plaats van sp_add_jobschedule
voor al uw SQL Server Agent-taken.
Voorbeeld
Het sp_add_jobschedule
Werkwijze
Het sp_add_jobschedule
procedure maakt een planning voor een bepaalde SQL Server Agent-taak. Wanneer u deze procedure aanroept, moet u de naam of het ID opgeven van een functie waarop u deze wilt toepassen.
Kortom, deze procedure creëert een schema en koppelt dit aan een enkele taak.
Hier is een voorbeeld van het maken van een taak en het gebruik van de sp_add_jobschedule
opgeslagen procedure:
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;
Als je kijkt naar het sp_add_jobschedule
procedure, de @job_name
argument geeft de taaknaam. De @name
argument geeft de naam die u aan het schema wilt geven.
De sp_add_schedule
Werkwijze
De sp_add_schedule
procedure kunt u een planning maken zonder dat u een taak hoeft op te geven waaraan u deze wilt koppelen.
Deze procedure maakt het schema, maar koppelt het niet aan taken. Om het aan een taak te koppelen, moet u de sp_attach_schedule
. gebruiken procedure.
Hier is een voorbeeld:
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
Wanneer u sp_attach_schedule
. gebruikt , moet u de naam van de taak of de ID (maar niet beide) opgeven, evenals de planningsnaam of ID (maar niet beide).
Een sp_add_jobschedule
bijvoegen Schema
Het is belangrijk op te merken dat sp_attach_schedule
kan schema's bijvoegen die zijn gemaakt met zowel sp_add_schedule
en met sp_add_jobschedule
.
Met andere woorden, een planning maken met sp_add_jobschedule
beperkt het niet tot alleen de taak die u hebt opgegeven bij het maken van het schema. het is nog steeds beschikbaar om later aan andere taken te worden toegevoegd met behulp van sp_attach_schedule
.