sp_delete_schedule (Transact-SQL)

Se aplica a: SQL Server

Elimina una programación.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_delete_schedule
    [ [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @force_delete = ] force_delete ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Argumentos

[ @schedule_id = ] schedule_id

Número de identificación de la programación que se va a eliminar. @schedule_id es int, con un valor predeterminado de NULL.

Se deben especificar @schedule_id o @schedule_name , pero no se pueden especificar ambos.

[ @schedule_name = ] N'schedule_name'

Nombre de la programación que se va a eliminar. @schedule_name es sysname, con un valor predeterminado de NULL.

Se deben especificar @schedule_id o @schedule_name , pero no se pueden especificar ambos.

[ @force_delete = ] force_delete

Especifica si el procedimiento debe generar un error si la programación está adjunta a un trabajo. @force_delete es bit, con un valor predeterminado de 0.

  • Cuando @force_delete es 0, se produce un error en el procedimiento almacenado si la programación está asociada a un trabajo.
  • Cuando @force_delete es 1, la programación se elimina independientemente de si la programación está asociada a un trabajo.

[ @automatic_post = ] automatic_post

Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Ninguno.

Comentarios

De forma predeterminada, no se puede eliminar una programación si la programación está asociada a un trabajo. Para eliminar una programación asociada a un trabajo, especifique un valor de 1 para @force_delete. La eliminación de una programación no detiene los trabajos que se están ejecutando actualmente.

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

El propietario del trabajo puede adjuntar un trabajo a una programación y desasociar un trabajo de una programación sin tener que ser el propietario de la programación. Sin embargo, no se puede eliminar una programación si el desasocio lo dejaría sin trabajos, a menos que el autor de la llamada sea el propietario de la programación.

Para detalles sobre los permisos de estos roles, consulte Roles fijos de base de datos del Agente SQL Server.

Solo los miembros del rol sysadmin pueden eliminar una programación de trabajo propiedad de otro usuario.

Ejemplos

A Eliminación de una programación

En el ejemplo siguiente se elimina la programación NightlyJobs. Si la programación está asociada a cualquier trabajo, el ejemplo no elimina la programación.

USE msdb;
GO

EXEC dbo.sp_delete_schedule
    @schedule_name = N'NightlyJobs';
GO

B. Eliminar una programación adjunta a un trabajo

En el ejemplo siguiente se elimina la programación RunOnce, independientemente de si está adjunta a un trabajo.

USE msdb;
GO

EXEC dbo.sp_delete_schedule
    @schedule_name = 'RunOnce',
    @force_delete = 1;
GO