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.

  • Scripts de PowerShell.

  • Scripts de Microsoft ActiveX.

  • Tareas de replicación.

  • 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 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, consulte Seguridad y protección (motor de base de datos).

Registros de pasos de trabajo

El Agente SQL Server 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.

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

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 de 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 como la cuenta de servicio del Agente SQL Server si el propietario del paso de trabajo es miembro de la función fija de servidor sysadmin. Los miembros de la función fija 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 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 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 al proveedor de PowerShell de SQL Server y a los cmdlets. Para obtener más información sobre la escritura de scripts de PowerShell mediante los complementos PowerShell de SQL Server, vea Información general de PowerShell de SQL Server.

Pasos de trabajo de scripts ActiveX

Nota importanteImportante

El paso de trabajo de scripts ActiveX se quitará del Agente SQL Server en una versión futura de Microsoft SQL Server. Evite usar 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

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

// JScript example for ActiveX Scripting job step
// Create a Dmo.Server object. The object connects to the
// server on which the script is running.

var oServer = CreateObject("SQLDmo.SqlServer");
oServer.LoginSecure = true;
oServer.Connect("(local)");

//Disconnect and destroy the server object
oServer.DisConnect();
oServer.Close(); 

Para crear un paso de trabajo de scripts ActiveX

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 obtener más información acerca de los agentes de replicación, vea Información general sobre los agentes de replicación.

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. Esta instrucción debe ser XML para el método Execute de Analysis Services. Puede que la instrucción no contenga un envoltorio de SOAP completo o un método Discover de XML para Analysis Services. Observe que, mientras que SQL Server Management Studio es compatible con los sobres SOAP (Protocolo simple de acceso a objetos) completos y con el método Discover, los pasos de trabajo del Agente SQL Server no lo son.

Para obtener más información acerca de XML para Analysis Services, vea Información general de XML for Analysis (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 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.

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.