sql >> Databáze >  >> RDS >> Sqlserver

Jak spustit úlohu SQL Server Agent pomocí T-SQL

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.


  1. [01000][unixODBC][Správce ovladačů]Nelze otevřít knihovnu '/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so':soubor nenalezen

  2. Programově načíst zdroj uložené procedury SQL Server, který je identický se zdrojem vráceným uživatelským rozhraním SQL Server Management Studio?

  3. Jaké jsou kroky v návrhu databáze?

  4. Jak vyprázdním vyrovnávací paměť PRINT v TSQL?