sql >> Database >  >> RDS >> Sqlserver

Sp_help_jobschedule gebruiken in SQL Server

In SQL Server is de sp_help_jobschedule opgeslagen procedure retourneert informatie over de planning van taken.

Dit artikel geeft een overzicht van deze opgeslagen procedure inclusief voorbeelden.

Syntaxis

De officiële syntaxis gaat als volgt:

sp_help_jobschedule { [ @job_id = ] job_id | [ @job_name = ] 'job_name' }  
     [ , [ @schedule_name = ] 'schedule_name' ]  
     [ , [ @schedule_id = ] schedule_id ]  
     [ , [ @include_description = ] include_description ]

Wanneer u sp_help_jobschedule . aanroept , moet u de taaknaam of de ID (maar niet beide) of de plannings-ID opgeven. U kunt ook de naam van het rooster doorgeven, maar alleen in combinatie met de taak-ID of de naam ervan.

De geaccepteerde combinatie is een beetje lastig. In principe gaat het als volgt:

Als schedule_id is opgegeven, noch job_id noch job_name kan worden opgegeven. Anders, de job_id of job_name parameters kunnen worden gebruikt met schedule_name .

U kunt de schedule_id . echter niet gebruiken als een planning aan meerdere taken is gekoppeld.

Merk op dat sp_help_jobschedule bevindt zich in de msdb database, dus het moet vanaf daar worden uitgevoerd. U kunt dit doen door over te schakelen naar de msdb database (bijv. met USE msdb ), of door de procedure te kwalificeren met de databasenaam en het schema (d.w.z. msdb.dbo.sp_help_jobschedule ).

Voorbeeld

Hier is een voorbeeld om te laten zien hoe u alle schema's die aan een specifieke taak zijn gekoppeld, kunt retourneren:

EXEC sp_help_jobschedule
	@job_name = 'SqlAgentTest';

Resultaat:

Dit retourneert een lijst met schema's die zijn gekoppeld aan de taak die is opgegeven met de @job_name argument.

Als alternatief had ik de @job_id . kunnen doorgeven :

EXEC sp_help_jobschedule
	@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';

Maar in dat geval kon ik @job_name niet gebruiken (het is het een of het ander).

Als u de taak-ID gebruikt, kunt u de parameternaam desgewenst weglaten:

EXEC sp_help_jobschedule '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';

De @schedule_id . gebruiken Parameter

U kunt ook een schema krijgen op basis van de ID:

EXEC sp_help_jobschedule
	@schedule_id = 15;

Dit werkt prima zolang het schema niet aan meerdere taken is gekoppeld.

Dit is wat er gebeurt als een planning aan meerdere taken is gekoppeld:

EXEC sp_help_jobschedule
	@schedule_id = 14;

Resultaat:

Msg 14369, Level 16, State 1, Procedure sp_help_jobschedule, Line 69 [Batch Start Line 22]
 The schedule ID "14" is used by more than one job. Specify the job_id.

En hoewel het vraagt ​​om de job_id , als u dit doet, moet u de schedule_id . verwijderen (zoals vermeld, als u een schedule_id doorgeeft , kunt u de job_name . niet opnemen of job_id ).

Om dit te demonstreren, als ik gewoon de job_id . toevoeg en bewaar de schedule_id daar krijg ik de volgende foutmelding.

EXEC sp_help_jobschedule
	@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8',
	@schedule_id = 14;

Resultaat:

Msg 14273, Level 16, State 1, Procedure sp_help_jobschedule, Line 51 [Batch Start Line 22]
 You must provide either @job_id or @job_name (and, optionally, @schedule_name), or @schedule_id.

Voeg de beschrijving toe

Een ander ding dat u kunt doen, is aangeven of u de beschrijving van het schema wel of niet wilt opnemen.

Standaard wordt de beschrijving niet opgenomen in de resultatenset. Eigenlijk is de schedule_description kolom is opgenomen, maar bevat niet de beschrijving, tenzij u hier expliciet om vraagt. Als je er niet om vraagt, de schedule_description kolom toont (Description not requested.) .

De @include_description parameter is bit , met een standaard van 0 , wat betekent dat de beschrijving niet wordt weergegeven. Een waarde van 1 doorgeven resulteert in de beschrijving die wordt weergegeven.

EXEC sp_help_jobschedule
	@job_name = 'SqlAgentTest',
	@include_description = 1;


  1. Hoe rang in MySQL te berekenen

  2. Een csv-bestand naar de SQL Server-database schrijven met python

  3. Minuten aftrekken van een tijdwaarde in PostgreSQL

  4. Wat te doen (of niet te doen) over de beste wachtstatistieken