sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan kører du et SQL Server Agent Job ved hjælp af T-SQL

Når du først opretter et SQL Server Agent-job, vil du måske lave en hurtig test for at se, om det rent faktisk kører uden problemer.

Dette er ret ligetil, når du bruger SSMS GUI, men hvordan gør du det i T-SQL?

Svar:sp_start_job gemt procedure.

Eksempel

Her er et eksempel til demonstration:

USE msdb;  
GO  
  
EXEC sp_start_job N'BackupKrankyKranesDB';
GO

I dette tilfælde kørte jeg et job kaldet BackupKrankyKranesDB .

Proceduren returnerer ingen resultatsæt. Men hvis du kører det i SSMS, kan du muligvis se en meddelelse som denne:

Job 'BackupKrankyKranesDB' started successfully.
 Completion time: 2020-12-13T19:54:18.3503521-08:00

Parametre

Du kan også angive parameternavnene. I så fald kunne jeg have gjort dette:

USE msdb;  
GO  
  
EXEC sp_start_job @job_name = N'BackupKrankyKranesDB';
GO

Du kan angive enten jobnavnet eller job-id'et (men ikke begge dele). Job-id'et er en uniqueidentifier med en standard på NULL .

Derfor kunne vi alternativt have gjort dette:

USE msdb;  
GO  
  
EXEC sp_start_job @job_id = '4FAE7031-36E8-4934-81E6-0D561F375627';
GO

Det er job-id'et for ovenstående job. Du skal selvfølgelig bruge ID'et for det job, du skal køre. Du kan bruge sp_help_job gemt procedure for at få job-id'et.

Syntaksen

Den faktiske syntaks ser sådan ud:

sp_start_job   
     {   [@job_name =] 'job_name'  
       | [@job_id =] job_id }  
     [ , [@error_flag =] error_flag]  
     [ , [@server_name =] 'server_name']  
     [ , [@step_name =] 'step_name']  
     [ , [@output_flag =] output_flag]

Se sp_start_job på Microsofts websted for en forklaring af hvert argument.

Se jobhistorik

Nu hvor vi har kørt jobbet, kan vi nu bruge sp_help_jobhistory for at kontrollere, at den blev tilføjet til jobhistorikken:

EXEC sp_help_jobhistory 
	@job_name = 'BackupKrankyKranesDB',
	@mode = 'FULL';

Brug af @mode = 'FULL' sikrer, at vi får mere detaljerede oplysninger.

Her er hvad jeg fik efter at have kørt jobbet:

Se sp_help_jobhistory på Microsofts websted for at få flere oplysninger om denne lagrede procedure.

Se også 4 måder at få SQL Server-jobhistorik for at få flere muligheder for at returnere jobhistorik.


  1. MONTH() Eksempler – MySQL

  2. Oversigt over T-SQL PRINT-erklæring

  3. Tilføj standardværdien for datetime-feltet i SQL Server til et tidsstempel

  4. java.sql.SQLEundtagelse:Ingen passende driver fundet til jdbc:mysql://localhost:3306/dbname