Compartir a través de


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

Este procedimiento almacenado es propiedad del rol db_owner . Puede conceder EXECUTE permisos para cualquier usuario, 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