Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да стартирате задача на агент на SQL Server с помощта на T-SQL

Когато за първи път създавате задание на SQL Server Agent, може да искате да направите бърз тест, за да видите дали действително ще работи без проблеми.

Това е доста лесно, когато използвате SSMS GUI, но как да го направите в T-SQL?

Отговор:sp_start_job съхранена процедура.

Пример

Ето пример за демонстрация:

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

В този случай изпълних задание, наречено BackupKrankyKranesDB .

Процедурата не връща никакви набори от резултати. Въпреки това, ако го стартирате в SSMS, може да видите съобщение като това:

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

Параметри

Можете също да предоставите имената на параметрите. В такъв случай можех да направя това:

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

Можете да предоставите или името на заданието, или идентификатора на заданието (но не и двете). Идентификаторът на заданието е уникален идентификатор със стойност по подразбиране NULL .

Следователно бихме могли да направим това:

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

Това е идентификационният номер на заданието по-горе. Очевидно ще трябва да използвате идентификатора на заданието, което трябва да изпълните. Можете да използвате sp_help_job съхранена процедура за получаване на идентификатора на заданието.

Синтаксис

Действителният синтаксис е така:

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]

Вижте sp_start_job на уебсайта на Microsoft за обяснение на всеки аргумент.

Преглед на историята на заданията

След като изпълнихме задачата, вече можем да използваме sp_help_jobhistory за да проверите дали е добавен към историята на заданията:

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

Използване на @mode = 'FULL' гарантира, че получаваме по-подробна информация.

Ето какво получих след изпълнение на заданието:

Вижте sp_help_jobhistory на уебсайта на Microsoft за повече информация относно тази съхранена процедура.

Вижте също 4 начина за получаване на хронология на заданията на SQL Server за повече опции за връщане на хронологията на заданията.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Възможно ли е да се вмъкнат в две таблици едновременно?

  2. Как мога да открия и обвързвам промени между стойностите на редовете в SQL таблица?

  3. Не може да се свърже със сървъра - грешка, свързана с мрежата или специфична за екземпляр

  4. Разлика между функции с таблично стойности с множество оператори и вградени функции с таблично стойности в SQL Server

  5. Какъв е добър начин да изрежете всички символи за интервал от низ в T-SQL без UDF и без CLR?