sp_update_jobstep (Transact-SQL)
Cambia la configuración de un paso de un trabajo que se utiliza para realizar actividades automatizadas.
Convenciones 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 perteneces el paso. job_ides de tipo uniqueidentifier y su valor predeterminado es NULL. Se debe especificar job_id o job_name, pero no ambos.[ @job_name =] 'job_name'
El 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 puede modificarse. 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'
El 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'
El comando o los comandos que van a ejecutarse por medio de subsystem. command es de tipo nvarchar(max) y su valor predeterminado es NULL.[ @additional_parameters =] 'parameters'
Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.[ @cmdexec_success_code =] success_code
Valor devuelto por un comando del 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
El número de identificación del paso de este trabajo que se debe ejecutar si el paso se realiza correctamente y si 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 realiza si el paso da error. fail_action es de tipo tinyint, su valor predeterminado es NULL y puede tener uno de estos valores.Valor
Descripción (acción)
1
Salir correctamente.
2
Salir con error.
3
Ir al paso siguiente.
4
Ir al paso fail_step_id.
[ @on_fail_step_id =] fail_step_id
El número de identificación del paso de este trabajo que se debe ejecutar si el paso no se realiza correctamente y si fail_action es 4. fail_step_id es de tipo int y su valor predeterminado es NULL.[ @server =] 'server'
Solamente 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 se va a ejecutar un paso de Transact-SQL. databasees de tipo sysname. No se permiten nombres incluidos entre corchetes ([ ]). El valor predeterminado es NULL.[ @database_user_name =] 'user'
El nombre de la cuenta de usuario que se va a utilizar al ejecutar un paso de Transact-SQL. user* *es de tipo sysname y su valor predeterminado es NULL.[ @retry_attempts =] retry_attempts
Número de reintentos en caso de que el paso dé error. retry_attemptses de tipo int y su valor predeterminado es NULL.[ @retry_interval =] retry_interval
Tiempo en minutos entre reintentos. retry_interval es de tipo int y su valor predeterminado es NULL.[ @os_run_priority =] run_priority
Solamente 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 se guarda el resultado de este paso. file_name es de tipo nvarchar(200) y su valor predeterminado es NULL. Este parámetro solo 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
Una opción que controla el comportamiento. flags es de tipo int y puede tener uno de estos 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 identificación 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)
Comentarios
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 del rol fijo de servidor sysadmin pueden ejecutar este procedimiento almacenado. Al resto de usuarios se les debe conceder uno de los siguientes roles fijos 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 estos roles, vea Roles fijos de base de datos del Agente SQL Server.
Solo 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
Vea también
Referencia
sp_delete_jobstep (Transact-SQL)
sp_help_jobstep (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)