Administrar pasos de trabajo

Se aplica a: SQL Server (todas las versiones admitidas) Azure SQL Managed Instance

Importante

En Azure SQL Managed Instance, actualmente son compatibles la mayoría de las características del Agente SQL Server. Consulte Diferencias entre T-SQL de Azure SQL Managed Instance y SQL Server para más información.

Los pasos de trabajo son acciones que el trabajo realiza en una base de datos o en un servidor. Cada trabajo debe estar formado por un paso, como mínimo. Los pasos de trabajo pueden ser:

  • Programas ejecutables y comandos del sistema operativo.

  • Instrucciones Transact-SQL, incluidos los procedimientos almacenados y los procedimientos almacenados extendidos.

  • Scripts de PowerShell.

  • Microsoft Scripts de ActiveX.

  • Tareas de replicación.

  • Analysis Services tareas.

  • Integration Services paquetes.

Todos los pasos de trabajo se ejecutan en un contexto de seguridad determinado. Si en el paso de trabajo se especifica un proxy, se ejecuta en el contexto de seguridad de la credencial del proxy. Si en el paso de trabajo no se especifica un proxy, se ejecuta en el contexto de la cuenta de servicio del Agente SQL Server . Solo los miembros del rol fijo de servidor sysadmin pueden crear trabajos en los que no se especifique un proxy de forma explícita.

Puesto que los pasos de trabajo se ejecutan en el contexto de un usuario específico de Microsoft Windows, dicho usuario debe disponer de los permisos y la configuración necesarios para que se ejecute el paso de trabajo. Por ejemplo, si crea un trabajo que requiere una letra de unidad o una ruta de acceso UNC (Convención de nomenclatura universal), los pasos de trabajo se pueden ejecutar con la cuenta de usuario de Windows durante la comprobación de las tareas. Sin embargo, el usuario de Windows para el paso de trabajo debe tener también los permisos y configuraciones de letra de unidad necesarios, o acceso a la unidad requerida. De lo contrario, se producirá un error en el paso de trabajo. Para evitar este problema, asegúrese de que el proxy para cada paso de trabajo dispone de los permisos necesarios para la tarea que realiza dicho paso. Para más información, consulte Seguridad y protección (motor de base de datos).

Registros de pasos de trabajo

SQL Server El Agente puede escribir el resultado de algunos pasos de trabajo en un archivo del sistema operativo o en la tabla sysjobstepslogs de la base de datos msdb. Los siguientes tipos de pasos de trabajo pueden escribir la salida en los siguientes destinos:

  • Programas ejecutables y comandos del sistema operativo.

  • Instrucciones Transact-SQL.

  • Analysis Services tareas.

Solo los pasos de trabajo que ejecutan los usuarios que son miembros del rol fijo de servidor sysadmin pueden escribir la salida en archivos del sistema operativo. Si los pasos de trabajo son ejecutados por usuarios que son miembros de los roles fijos de base de datos SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole de la base de datos msdb, la salida de dichos pasos solo se puede escribir en la tabla sysjobstepslogs.

Los registros de pasos de trabajo se eliminan automáticamente al eliminar los trabajos o pasos de trabajo.

Nota:

El registro de pasos de trabajo de tareas de replicación y paquetes de Integration Services lo controla el subsistema respectivo. No se puede utilizar el Agente SQL Server para configurar el registro de pasos de trabajo para estos tipos de pasos.

Programas ejecutables y comandos del sistema operativo como pasos de trabajo

Los programas ejecutables y comandos del sistema operativo se pueden utilizar como pasos de trabajo. Los archivos pueden tener las extensiones .bat, .cmd, .com o .exe.

Si utiliza un programa ejecutable o un comando del sistema operativo como paso de trabajo, debe especificar:

  • El código de salida del proceso que se devuelve si el comando se ha ejecutado correctamente.

  • El comando que se debe ejecutar. Para ejecutar un comando del sistema operativo, se trata simplemente del propio comando. En un programa externo, es el nombre del programa y los argumentos para el programa, por ejemplo: C:\Archivos de programa\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    Nota:

    Debe proporcionar la ruta de acceso completa del archivo ejecutable si éste no se encuentra en un directorio especificado en la ruta de acceso del sistema o la ruta de acceso del usuario con el que se ejecuta el paso de trabajo.

Pasos de trabajo Transact-SQL

Al crear un paso de trabajo de Transact-SQL, debe:

  • Identificar la base de datos en la que se ejecutará el trabajo.

  • Escribir la instrucción Transact-SQL que se debe ejecutar. La instrucción puede llamar a un procedimiento almacenado o un procedimiento almacenado extendido.

Opcionalmente, puede abrir un archivo Transact-SQL existente que actúe como comando para el paso de trabajo.

Los pasos de trabajo de Transact-SQL no utilizan servidores proxy del Agente SQL Server. En lugar de ello, el paso de trabajo se ejecuta como el propietario del paso de trabajo, o como la cuenta de servicio del Agente SQL Server si el propietario del paso de trabajo es miembro del rol fijo de servidor sysadmin. Los miembros del rol fijo de servidor sysadmin también pueden especificar que los pasos de trabajo de Transact-SQL se ejecuten en el contexto de otro usuario mediante el parámetro database_user_name del procedimiento almacenado sp_add_jobstep. Para más información, consulte sp_add_jobstep (Transact-SQL).

Nota:

Un solo paso de trabajo de Transact-SQL puede contener varios lotes. Los pasos de trabajo de Transact-SQL pueden contener comandos GO insertados.

Pasos de trabajo de scripts de PowerShell

Al crear un paso de trabajo de script de PowerShell, es preciso especificar una de estas dos cosas como comando para dicho paso:

  • El texto de un script de PowerShell.

  • El archivo de script de PowerShell que se desea abrir.

El subsistema PowerShell del Agente SQL Server abre una sesión PowerShell y carga los complementos PowerShell de SQL Server . El script de PowerShell usado como comando del paso de trabajo puede hacer referencia los cmdlets y al proveedor de SQL Server PowerShell. Para más información sobre cómo escribir scripts de PowerShell mediante los complementos de SQL Server PowerShell, consulte SQL Server PowerShell.

Pasos de trabajo de scripts ActiveX

Importante

El paso de trabajo de scripts ActiveX se quitará del Agente SQL Server en una versión futura de MicrosoftSQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

Al crear un paso de trabajo de scripts ActiveX, debe realizar las siguientes acciones:

  • Identificar el lenguaje de scripts en el que se ha escrito el paso de trabajo

  • Escribir el script ActiveX

También puede abrir un archivo de scripts ActiveX existente y utilizarlo como comando para el paso de trabajo. Opcionalmente, los comandos de los scripts ActiveX se pueden compilar externamente (por ejemplo, mediante Microsoft Visual Basic) y, después, ejecutarse como programas ejecutables.

Si el comando del paso de trabajo es un script ActiveX, puede utilizar el objeto SQLActiveScriptHost para imprimir la salida en el registro de historial del paso de trabajo o para crear objetos COM. SQLActiveScriptHost es un objeto global que el sistema host del Agente SQL Server introduce en el espacio de nombres de scripts. El objeto tiene dos métodos (Print y CreateObject). En el siguiente ejemplo se muestra cómo funcionan los scripts ActiveX en Visual Basic Scripting Edition (VBScript).

' VBScript example for ActiveX Scripting job step  
' Create a Dmo.Server object. The object connects to the  
' server on which the script is running.  
  
Set oServer = CreateObject("SQLDmo.SqlServer")  
oServer.LoginSecure = True  
oServer.Connect "(local)"  
'Disconnect and destroy the server object  
oServer.DisConnect  
Set oServer = nothing  

Pasos de trabajos de replicación

Si crea publicaciones y suscripciones con replicación, se crean trabajos de replicación de forma predeterminada. El tipo de replicación (de instantáneas, transaccional o de mezcla) y las opciones utilizadas determinan el tipo de trabajo que se crea.

Los pasos de trabajo de replicación activan uno de los siguientes agentes de réplica:

  • Agente de instantáneas (trabajo Instantánea)

  • Agente de registro del LOG (trabajo Lector del registro)

  • Agente de distribución (trabajo Distribución)

  • Agente de mezcla (trabajo Mezcla)

  • Agente de lectura de cola (trabajo Lectura de cola)

Cuando esté configurada la replicación, puede especificar que los agentes de replicación se ejecuten de una de estas tres maneras: continuamente tras iniciar el Agente SQL Server , a petición o según una programación. Para más información sobre los agentes de replicación, consulte Información general sobre los agentes de replicación.

Pasos de trabajo de Analysis Services

SQL Server El Agente admite dos tipos distintos de pasos de trabajo de Analysis Services: pasos de trabajo de comando y pasos de trabajo de consulta.

Pasos de trabajo de comando de Analysis Services

Al crear un paso de trabajo de comando de Analysis Services , debe:

  • Identificar el servidor OLAP de la base de datos en el que se ejecutará el paso de trabajo.

  • Escribir la instrucción que se debe ejecutar. Esta instrucción debe ser XML para el método Analysis Services Execute. Puede que la instrucción no contenga un elemento SOAP completo o un XML para el método Analysis Services Discover. Tenga en cuenta que, aunque SQL Server Management Studio admite envolturas SOAP completas y el método Discover, los pasos de trabajo del Agente SQL Server no lo hacen.

Pasos de trabajo de consulta de Analysis Services

Al crear un paso de trabajo de consulta de Analysis Services , debe:

  • Identificar el servidor OLAP de la base de datos en el que se ejecutará el paso de trabajo.

  • Escribir la instrucción que se debe ejecutar. La instrucción debe ser una consulta de expresiones multidimensionales (MDX).

Para más información sobre MDX, consulte Aspectos básicos de la instrucción MDX.

Paquetes de Integration Services

Al crear un paso de trabajo de paquete de Integration Services , debe realizar las operaciones siguientes:

  • Identificar el origen del paquete.

  • Identificar la ubicación del paquete.

  • Identificar los archivos de configuración si son necesarios para el paquete.

  • Identificar los archivos de comandos si son necesarios para el paquete.

  • Identificar la comprobación que se debe utilizar para el paquete. Por ejemplo, puede especificar que el paquete debe estar firmado o que debe tener un Id. de paquete específico.

  • Identificar los orígenes de datos del paquete.

  • Identificar los proveedores de registro del paquete.

  • Especificar las variables y los valores que se deben establecer para ejecutar el paquete.

  • Identificar las opciones de ejecución.

  • Agregar o modificar las opciones de línea de comandos.

Tenga en cuenta que si implementó el paquete en el catálogo de SSIS y especifica Catálogo de SSIS como origen del paquete, gran parte de esta información de configuración se obtiene automáticamente del paquete. En la pestaña Configuración puede especificar el entorno, los valores de parámetro, los valores del administrador de conexiones, las invalidaciones de propiedad y si el paquete se ejecuta en un entorno en tiempo de ejecución de 32 bits.

Para más información sobre cómo crear pasos de trabajo que ejecutan paquetes de Integration Services , consulte Trabajos del Agente SQL Server para paquetes.

Descripción Tema
Describe cómo crear un paso de trabajo con un programa ejecutable. Crear un paso de trabajo CmdExec
Describe cómo restablecer los permisos del Agente SQL Server . Configurar un usuario para crear y administrar trabajos del Agente SQL Server
Describe cómo crear un paso de trabajo de Transact-SQL. Create a Transact-SQL Job Step
Describe cómo definir opciones para los pasos de trabajo Transact-SQL del Agente SQL Server de Microsoft. Define Transact-SQL Job Step Options
Describe cómo crear un paso de trabajo de script ActiveX. Create an ActiveX Script Job Step
Describe cómo crear y definir pasos de trabajo del Agente SQL Server que ejecutan comandos y consultas de SQL Server Analysis Services. Create an Analysis Services Job Step
Describe la acción que SQL Server debe realizar si se produce un error durante la ejecución del trabajo. Set Job Step Success or Failure Flow
Describe cómo ver detalles de pasos de trabajo en el cuadro de diálogo Propiedades de paso de trabajo. View Job Step Information
Describe cómo eliminar un registro de pasos de trabajo del Agente SQL Server . Delete a Job Step Log

Consulte también

sysjobstepslogs (Transact-SQL)
Crear trabajos
sp_add_job (Transact-SQL)