Compartir a través de


sp_update_jobstep (Transact-SQL)

Cambia la configuración de un paso de un trabajo que se utiliza para realizar actividades automatizadas.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_update_jobstep 
     {   [@job_id =] job_id 
       | [@job_name =] 'job_name' } ,
     [@step_id =] step_id
     [ , [@step_name =] 'step_name' ]
     [ , [@subsystem =] 'subsystem' ] 
     [ , [@command =] 'command' ]
     [ , [@additional_parameters =] 'parameters' ]
     [ , [@cmdexec_success_code =] success_code ]
     [ , [@on_success_action =] success_action ] 
     [ , [@on_success_step_id =] success_step_id ]
          [ , [@on_fail_action =] fail_action ] 
          [ , [@on_fail_step_id =] fail_step_id ]
     [ , [@server =] 'server' ] 
     [ , [@database_name =] 'database' ]
     [ , [@database_user_name =] 'user' ] 
     [ , [@retry_attempts =] retry_attempts ]
     [ , [@retry_interval =] retry_interval ] 
     [ , [@os_run_priority =] run_priority ]
     [ , [@output_file_name =] 'file_name' ] 
     [ , [@flags =] flags ]
     [ ,  {   [ @proxy_id = ] proxy_id 
            | [ @proxy_name = ] 'proxy_name' } 

Argumentos

  • [ @job_id =] job_id
    Número de identificación del trabajo al que pertenece el paso. job_id es de tipo uniqueidentifier y su valor predeterminado es NULL. Se debe especificar job_id o job_name, pero no ambos.

  • [ @job_name =] 'job_name'
    Nombre del trabajo al que pertenece el paso. job_namees de tipo sysname y su valor predeterminado es NULL. Se debe especificar job_id o job_name, pero no ambos.

  • [ @step_id =] step_id
    Número de identificación del paso de trabajo que va a modificarse. Este número no se puede cambiar. step_ides de tipo int y no tiene ningún valor predeterminado.

  • [ @step_name =] 'step_name'
    Es el nombre nuevo del paso. step_namees de tipo sysname y su valor predeterminado es NULL.

  • [ @subsystem =] 'subsystem'
    Subsistema que utiliza el Agente Microsoft SQL Server para ejecutar command. subsystem es de tipo nvarchar(40) y su valor predeterminado es NULL.

  • [ @command =] 'command'
    Comando o comandos que van a ejecutarse por medio de subsystem. command es de tipo nvarchar(max) y su valor predeterminado es NULL.

  • [ @additional_parameters =] 'parameters'
    Solo se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

  • [ @cmdexec_success_code =] success_code
    Valor que devuelve un comando de subsistema CmdExec para indicar que command se ha ejecutado correctamente. success_code es de tipo int y su valor predeterminado es NULL.

  • [ @on_success_action =] success_action
    Acción que se debe realizar si el paso se ejecuta con éxito. success_action es de tipo tinyint, su valor predeterminado es NULL y puede tener uno de los valores siguientes.

    Valor

    Descripción (acción)

    1

    Salir correctamente.

    2

    Salir con error.

    3

    Ir al paso siguiente.

    4

    Ir al paso success_step_id.

  • [ @on_success_step_id =] success_step_id
    Número de identificación del paso de este trabajo que se debe ejecutar si el paso tiene éxito y success_action es 4. success_step_id es de tipo int y su valor predeterminado es NULL.

  • [ @on_fail_action =] fail_action
    Acción que se debe realizar si se produce un error en el paso. fail_action es de tipo tinyint, su valor predeterminado es NULL y puede tener uno de los valores siguientes.

    Valor

    Descripción (acción)

    1

    Salir con éxito.

    2

    Salir con error.

    3

    Ir al paso siguiente.

    4

    Ir al paso fail_step_id.

  • [ @on_fail_step_id =] fail_step_id
    Número de identificación del paso de este trabajo que se debe ejecutar si se produce un error en el paso y fail_action es 4. fail_step_id es de tipo int y su valor predeterminado es NULL.

  • [ @server =] 'server'
    Solo se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.server es de tipo nvarchar(128) y su valor predeterminado es NULL.

  • [ @database_name =] 'database'
    Nombre de la base de datos en la que ejecutará un paso de Transact-SQL. database es de tipo sysname. No se permiten nombres incluidos entre corchetes ([ ]). El valor predeterminado es NULL.

  • [ @database_user_name =] 'user'
    Nombre de la cuenta de usuario que va a utilizarse al ejecutar un paso de Transact-SQL. useres de tipo sysname y su valor predeterminado es NULL.

  • [ @retry_attempts =] retry_attempts
    Número de reintentos que deben realizarse si este paso no se ejecuta correctamente. retry_attemptses de tipo int y su valor predeterminado es NULL.

  • [ @retry_interval =] retry_interval
    Cantidad de tiempo en minutos entre reintentos. retry_interval es de tipo int y su valor predeterminado es NULL.

  • [ @os_run_priority =] run_priority
    Solo se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

  • [ @output_file_name =] 'file_name'
    Nombre del archivo en el que va a guardarse la salida de este paso. file_name es de tipo nvarchar(200) y su valor predeterminado es NULL. Este parámetro sólo es válido con comandos que se ejecutan en subsistemas Transact-SQL o CmdExec.

    Para restablecer output_file_name en NULL, debe establecer output_file_name en una cadena vacía (' ') o en una cadena de caracteres en blanco, pero no puede utilizar la función CHAR(32). Por ejemplo, establezca este argumento en una cadena vacía del modo siguiente:

    @output_file_name = ' '

  • [ @flags =] flags
    Opción que controla el comportamiento. flags es de tipo int y puede ser uno de los siguientes valores.

    Valor

    Descripción

    0 (predeterminado)

    Sobrescribir el archivo de salida.

    2

    Anexar al archivo de salida

    4

    Escribir la salida del paso de trabajo Transact-SQL en el historial de pasos

    8

    Escribir el registro en la tabla (sobrescribir el historial existente)

    16

    Escribir el registro en la tabla (anexar al historial existente)

  • [ @proxy_id= ] proxy_id
    Número de Id. del proxy con el que se ejecuta el paso de trabajo. proxy_id es de tipo int y su valor predeterminado es NULL. Si no se especifica proxy_id, proxy_name o user_name, el paso de trabajo se ejecuta como la cuenta de servicio para el Agente SQL Server.

  • [ @proxy_name= ] 'proxy_name'
    Nombre del proxy con el que se ejecuta el paso de trabajo. proxy_name es de tipo sysname y su valor predeterminado es NULL. Si no se especifica proxy_id, proxy_name o user_name, el paso de trabajo se ejecuta como la cuenta de servicio para el Agente SQL Server.

Valores de código de retorno

0 (correcto) o 1 (error)

Notas

sp_update_jobstep se debe ejecutar desde la base de datos msdb.

La actualización de un paso de trabajo incrementa el número de la versión del trabajo.

Permisos

De forma predeterminada, los miembros de la función fija de servidor sysadmin pueden ejecutar este procedimiento almacenado. A otros usuarios debe concederse una de las siguientes funciones fijas de base de datos del Agente SQL Server en la base de datos msdb:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Para obtener más información acerca de los permisos de estas funciones, vea Funciones fijas de base de datos del Agente SQL Server.

Sólo los miembros de sysadmin pueden actualizar un paso de trabajo que sea propiedad de otro usuario.

Si el paso de trabajo requiere acceso a un proxy, el creador del paso de trabajo debe tener acceso al proxy del paso de trabajo. Todos los subsistemas, excepto Transact-SQL, necesitan una cuenta de proxy. Los miembros de sysadmin tienen acceso a todos los proxy y pueden utilizar la cuenta de servicio del Agente SQL Server correspondiente al proxy.

Ejemplos

En el siguiente ejemplo se modifica el número de reintentos para el primer paso del trabajo Weekly Sales Data Backup. Después de ejecutar este ejemplo, el número de reintentos es 10.

USE msdb ;
GO

EXEC dbo.sp_update_jobstep
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 1,
    @retry_attempts = 10 ;
GO