sp_detach_schedule (Transact-SQL)

Se aplica a: SQL Server

Quita una asociación entre una programación y un trabajo.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_detach_schedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Argumentos

[ @job_id = ] 'job_id'

Número de identificación del trabajo cuya programación se va a quitar. @job_id es uniqueidentifier, con un valor predeterminado de NULL.

Se deben especificar @job_id o @job_name , pero no se pueden especificar ambos.

[ @job_name = ] N'job_name'

Nombre del trabajo cuya programación se va a quitar. @job_name es sysname, con un valor predeterminado de NULL.

Se deben especificar @job_id o @job_name , pero no se pueden especificar ambos.

[ @schedule_id = ] schedule_id

Número de identificación de la programación que se va a quitar del trabajo. @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 se va a quitar del trabajo. @schedule_name es sysname, con un valor predeterminado de NULL.

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

[ @delete_unused_schedule = ] delete_unused_schedule

Especifica si se van a eliminar las programaciones de trabajo no utilizadas. @delete_unused_schedule es bit, con un valor predeterminado de 0, lo que significa que se mantienen todas las programaciones, incluso si no se hace referencia a ellos ningún trabajo. Si se establece en 1, las programaciones de trabajos no utilizados se eliminan si no se hace referencia a ellos ningún 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.

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.

SQL Server comprueba si el usuario posee la programación. Solo los miembros del rol fijo de servidor sysadmin pueden desasociar programaciones de trabajos propiedad de otro usuario.

Ejemplos

En el siguiente ejemplo se quita una asociación entre una programación NightlyJobs y un trabajo BackupDatabase.

USE msdb;
GO

EXEC dbo.sp_detach_schedule
    @job_name = 'BackupDatabase',
    @schedule_name = 'NightlyJobs';
GO