sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo ejecutar un trabajo del Agente SQL Server usando T-SQL

Cuando crea por primera vez un trabajo del Agente SQL Server, es posible que desee realizar una prueba rápida para ver si realmente se ejecutará sin problemas.

Esto es bastante sencillo cuando se usa la GUI de SSMS, pero ¿cómo se hace en T-SQL?

Respuesta:El sp_start_job procedimiento almacenado.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

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

En este caso ejecuté un trabajo llamado BackupKrankyKranesDB .

El procedimiento no devuelve ningún conjunto de resultados. Sin embargo, si lo ejecuta en SSMS, es posible que vea un mensaje como este:

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

Parámetros

También puede proporcionar los nombres de los parámetros. En ese caso, podría haber hecho esto:

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

Puede proporcionar el nombre del trabajo o el ID del trabajo (pero no ambos). El ID del trabajo es un identificador único con un valor predeterminado de NULL .

Por lo tanto, podríamos haber hecho esto alternativamente:

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

Esa es la identificación del trabajo del trabajo anterior. Obviamente, necesitaría usar la ID del trabajo que necesita ejecutar. Puede usar el sp_help_job procedimiento almacenado para obtener la identificación del trabajo.

La sintaxis

La sintaxis real es así:

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]

Ver sp_start_job en el sitio web de Microsoft para obtener una explicación de cada argumento.

Ver historial de trabajos

Ahora que hemos ejecutado el trabajo, ahora podemos usar sp_help_jobhistory para verificar que se agregó al historial de trabajos:

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

Usando @mode = 'FULL' asegura que obtengamos información más detallada.

Esto es lo que obtuve después de ejecutar el trabajo:

Ver sp_help_jobhistory en el sitio web de Microsoft para obtener más información sobre este procedimiento almacenado.

Consulte también 4 formas de obtener el historial de trabajos de SQL Server para obtener más opciones para devolver el historial de trabajos.