Crear pasos de trabajo

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.
  • Secuencias de comandos Microsoft ActiveX.
  • Tareas de réplica.
  • Tareas de Analysis Services.
  • Paquetes de Integration Services.

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. Sólo los miembros de la función de servidor fija 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 Microsoft 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 obtener más información, vea Consideraciones de seguridad para SQL Server.

Registros de pasos de trabajo

El Agente SQL Server puede escribir la salida 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.
  • Tareas de Analysis Services.

Sólo los pasos de trabajo que ejecutan los usuarios que son miembros de la función de servidor fija sysadmin pueden escribir la salida en archivos del sistema operativo. Si los pasos de trabajo son ejecutados por usuarios que son miembros de las funciones fijas de base de datos SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole de la base de datos msdb, la salida de dichos pasos sólo 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 réplica 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\90\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.

Para crear un paso de trabajo con un programa ejecutable
Para restablecer los permisos del Agente SQL Server

Pasos de trabajo Transact-SQL

Al crear un paso de trabajo 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 Transact-SQL no utilizan cuentas de proxy del Agente SQL Server. En lugar de ello, el paso de trabajo se ejecuta como el propietario del paso de trabajo, o con la cuenta de servicio del Agente SQL Server si el propietario del paso de trabajo es miembro de la función de servidor fija sysadmin. Los miembros de la función fija de servidor sysadmin también pueden especificar que los pasos de trabajo Transact-SQL se ejecuten en el contexto de otro usuario mediante el parámetro database_user_name del procedimiento almacenado sp_add_jobstep. Para obtener más información, vea sp_add_jobstep (Transact-SQL).

[!NOTA] Un único paso de trabajo Transact-SQL puede contener varios procesos por lotes. Los pasos de trabajo Transact-SQL pueden contener comandos GO incrustados.

Para crear un paso de trabajo Transact-SQL
Para definir opciones de pasos de trabajo Transact-SQL

Pasos de trabajo de secuencias de comandos ActiveX

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

  • Identificar el lenguaje de secuencias de comandos en el que se ha escrito el paso de trabajo
  • Escribir la secuencia de comandos ActiveX

También puede abrir un archivo de secuencias de comandos ActiveX existente y utilizarlo como comando para el paso de trabajo. Opcionalmente, los comandos de las secuencias de comandos 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 una secuencia de comandos 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 secuencias de comandos. El objeto tiene dos métodos (Print y CreateObject). En el siguiente ejemplo se muestra cómo funcionan las secuencias de comandos ActiveX en Visual Basic Scripting Edition (VBScript).

' VBScript example for ActiveX Scripting job step

Sub main()
          
    ' Create a Smo.Server object. The object connects to the
    ' server on which the script is running.

    Set SmoServer = _
        CreateObject ("Microsoft.SqlServer.Management.Smo.Server")


    ' Check the number of active connections for AdventureWorks.
    
    ConnectionCount = _
        SmoServer.GetActiveDbConnectionCount("AdventureWorks")


    ' If there are active connections, close the connections.

    If ConnectionCount > 0 Then

        ' Log in the job history that this job step dropped
        ' connections to AdventureWorks.

        Print ("Dropping connections to AdventureWorks." + crLf )

        ' Drop all active connections to AdventureWorks.

        SmoServer.DropAllActiveDbConnections("AdventureWorks")

   End If

End Sub

En el ejemplo siguiente se muestra la misma tarea en JScript:

// JScript example for ActiveX job step

function main() {

    // Create a Smo.Server object. The object connects to the
    // server on which the script is running.

    var SmoServer =
        CreateObject("Microsoft.SqlServer.Management.Smo.Server");

    // Check the number of active connections for AdventureWorks.

    var ConnectionCount =
        SmoServer.GetActiveDbConnectionCount("AdventureWorks");

    // If there are active connections, close the connections.

    if (ConnectionCount > 0) {

        // Log in the job history that this job step dropped
        // connections to AdventureWorks.

        Print ("Dropping connections to AdventureWorks.\n");

        // Drop all active connections to AdventureWorks.

        SmoServer.DropAllActiveDbConnections("AdventureWorks");
    }
}
Para crear un paso de trabajo de secuencias de comandos ActiveX

Pasos de trabajos de réplica

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

Los pasos de trabajo de réplica 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 réplica, puede especificar que los agentes de réplica 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 obtener más información acerca de los agentes de réplica, vea Información general sobre los agentes de réplica.

Pasos de trabajo de Analysis Services

El Agente SQL Server 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. La instrucción debe ser un método Execute de XML for Analysis Services. La instrucción no puede contener una envoltura SOAP completa o un método Discover de XML for Analysis Services. Tenga en cuenta que, a diferencia de SQL Server Management Studio, el Agente SQL Server no admite envolturas SOAP completas ni el método Discover.

Para obtener más información acerca de XML for Analysis Services, vea XML for Analysis Overview (XMLA).

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 obtener más información acerca de MDX, vea Aspectos básicos de las consultas MDX (MDX).

Paquetes de Integration Services

Al crear un paso de trabajo de paquete de Integration Services, debe:

  • 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.

Para obtener más información acerca de cómo crear pasos de trabajo que ejecutan paquetes de Integration Services, vea Cómo ejecutar un paquete con un trabajo del Agente SQL Server

Vea también

Conceptos

Crear trabajos

Otros recursos

sysjobstepslogs (Transact-SQL)
sp_add_job (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005