sp_delete_job (Transact-SQL)
Se aplica a: SQL Server Azure SQL Managed Instance
Elimina un trabajo del servicio Agente SQL Server.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_delete_job
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @originating_server = ] N'originating_server' ]
[ , [ @delete_history = ] delete_history ]
[ , [ @delete_unused_schedule = ] delete_unused_schedule ]
[ ; ]
Argumentos
[ @job_id = ] 'job_id'
Número de identificación del trabajo que se va a eliminar. @job_id es uniqueidentifier, con un valor predeterminado de NULL
.
Se deben especificar @job_id o @job_name ; no se pueden especificar ambos.
[ @job_name = ] N'job_name'
Nombre del trabajo que se debe eliminar. @job_name es sysname, con un valor predeterminado de NULL
.
Se deben especificar @job_id o @job_name ; no se pueden especificar ambos.
[ @originating_server = ] N'originating_server'
Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.
[ @delete_history = ] delete_history
Especifica si se debe eliminar el historial del trabajo. @delete_history es bit, con un valor predeterminado de 1
.
- Cuando @delete_history es
1
, se elimina el historial de trabajos del trabajo. - Cuando @delete_history es
0
, el historial de trabajos no se elimina.
Cuando se elimina un trabajo y no se elimina el historial, la información histórica del trabajo no se muestra en el Agente SQL Server historial gráfico de trabajos de la interfaz de usuario, pero la información todavía reside en la tabla de la sysjobhistory
msdb
base de datos.
[ @delete_unused_schedule = ] delete_unused_schedule
Especifica si se van a eliminar las programaciones adjuntas a este trabajo si no están asociadas a ningún otro trabajo. @delete_unused_schedule es bit, con un valor predeterminado de 1
.
- Cuando @delete_unused_schedule es
1
, las programaciones adjuntas a este trabajo se eliminan si ningún otro trabajo hace referencia a la programación. - Cuando @delete_unused_schedule es
0
, las programaciones no se eliminan.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Conjunto de resultados
Ninguno.
Comentarios
El argumento @originating_server está reservado para uso interno.
El argumento @delete_unused_schedule proporciona compatibilidad con versiones anteriores de SQL Server quitando automáticamente las programaciones que no están asociadas a ningún trabajo. Este parámetro tiene como valor predeterminado el comportamiento compatible con versiones anteriores. Para conservar las programaciones que no están asociadas a un trabajo, debe proporcionar el valor 0
como argumento @delete_unused_schedule .
SQL Server Management Studio ofrece un método gráfico sencillo para administrar trabajos y es el método recomendado para crear y administrar la infraestructura de trabajo.
Este procedimiento almacenado no puede eliminar planes de mantenimiento y no puede eliminar trabajos que forman parte de los planes de mantenimiento. En su lugar, use SQL Server Management Studio para eliminar planes de mantenimiento.
Este procedimiento almacenado comparte el nombre de sp_delete_job
con un objeto similar para el servicio Trabajos elásticos de Azure para Azure SQL Database. Para obtener información sobre la versión de trabajos elásticos, consulte jobs.sp_delete_job (Trabajos elásticos de Azure).
Permisos
Puede conceder EXECUTE
permisos en este procedimiento, pero estos permisos se pueden invalidar durante una actualización de SQL Server.
A otros usuarios se les debe conceder uno de los siguientes Agente SQL Server roles fijos de base de datos en la msdb
base de datos:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Para detalles sobre los permisos de estos roles, consulte Roles fijos de base de datos del Agente SQL Server.
Los miembros del rol fijo de servidor sysadmin pueden ejecutarse sp_delete_job
para eliminar cualquier trabajo. Un usuario que no sea miembro del rol fijo de servidor sysadmin solo puede eliminar trabajos propiedad de ese usuario.
Ejemplos
En el ejemplo siguiente se elimina el trabajo NightlyBackups
.
USE msdb;
GO
EXEC sp_delete_job
@job_name = N'NightlyBackups';
GO