Když poprvé vytváříte úlohu SQL Server Agent, možná budete chtít provést rychlý test, abyste zjistili, zda skutečně poběží bez problémů.
To je docela jednoduché při použití SSMS GUI, ale jak to udělat v T-SQL?
Odpověď:sp_start_job
uložená procedura.
Příklad
Zde je příklad k demonstraci:
USE msdb;
GO
EXEC sp_start_job N'BackupKrankyKranesDB';
GO
V tomto případě jsem spustil úlohu s názvem BackupKrankyKranesDB
.
Procedura nevrací žádné sady výsledků. Pokud jej však spustíte v SSMS, může se zobrazit tato zpráva:
Job 'BackupKrankyKranesDB' started successfully. Completion time: 2020-12-13T19:54:18.3503521-08:00
Parametry
Můžete také zadat názvy parametrů. V tom případě jsem mohl udělat toto:
USE msdb;
GO
EXEC sp_start_job @job_name = N'BackupKrankyKranesDB';
GO
Můžete zadat buď název úlohy, nebo ID úlohy (ale ne obojí). ID úlohy je jedinečný identifikátor s výchozí hodnotou NULL
.
Proto jsme mohli alternativně udělat toto:
USE msdb;
GO
EXEC sp_start_job @job_id = '4FAE7031-36E8-4934-81E6-0D561F375627';
GO
To je ID úlohy výše uvedené zakázky. Je zřejmé, že budete muset použít ID úlohy, kterou potřebujete spustit. Můžete použít sp_help_job
uložená procedura k získání ID úlohy.
Syntaxe
Skutečná syntaxe vypadá takto:
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]
Viz sp_start_job
na webu Microsoftu, kde najdete vysvětlení každého argumentu.
Zobrazit historii úloh
Nyní, když jsme úlohu spustili, můžeme nyní použít sp_help_jobhistory
zkontrolovat, že byla přidána do historie úlohy:
EXEC sp_help_jobhistory
@job_name = 'BackupKrankyKranesDB',
@mode = 'FULL';
Pomocí @mode = 'FULL'
zajišťuje, že získáme podrobnější informace.
Po spuštění úlohy jsem získal toto:
Viz sp_help_jobhistory
na webu společnosti Microsoft, kde najdete další informace o této uložené proceduře.
Další možnosti vrácení historie úloh naleznete také v části 4 způsoby, jak získat historii úloh serveru SQL.