Tarea Secuencia de comandos

Actualizado: 17 de julio de 2006

La tarea Secuencia de comandos proporciona código para realizar funciones que no están disponibles en las tareas integradas ni en las transformaciones proporcionadas por SQL Server 2005 Integration Services. La tarea Secuencia de comandos también puede combinar funciones en una secuencia de comandos, en lugar de usar múltiples tareas y transformaciones. La tarea Secuencia de comandos sirve para trabajos que se deben realizar una sola vez en un paquete (o una vez por objeto enumerado), en lugar de una vez por fila de datos. Si necesita utilizar la secuencia de comandos para hacer el mismo trabajo en cada fila de datos de un conjunto, utilice el componente de secuencia de comandos de la tarea Secuencia de comandos. Por ejemplo, si desea evaluar si un valor de franqueo es razonable y omitir filas de datos con valores extremadamente altos o bajos, utilice un componente de secuencia de comandos. Para obtener más información, vea Componente de secuencia de comandos.

El código creado por la tarea Secuencia de comandos es código de Microsoft Visual Basic .NET personalizado que se compila y ejecuta en tiempo de ejecución del paquete.

Puede usar la tarea Secuencia de comandos para los siguientes fines:

  • Tener acceso a datos mediante otras tecnologías incompatibles con los tipos de conexión integrados. Por ejemplo, una secuencia de comandos puede usar interfaces del servicio Active Directory (ADSI) para tener acceso a los nombres de usuario de Active Directory y extraer dichos nombres.
  • Crear un contador de rendimiento específico del paquete. Por ejemplo, una secuencia de comandos puede crear un contador de rendimiento que se actualiza mientras se ejecuta una tarea compleja o de bajo rendimiento.
  • Identificar si archivos específicos están vacíos o cuántas filas contienen y luego, en función de esa información, afectar el flujo de control de un paquete. Por ejemplo, si un archivo contiene cero filas, el valor de una variable se establece en 0, y una restricción de precedencia que evalúa el valor impide que una tarea Sistema de archivos copie el archivo.

Puede configurar la tarea Secuencia de comandos de las maneras siguientes:

  • Proporcionar la secuencia de comandos personalizada que ejecuta la tarea.
  • Especificar el nombre de la función que es el punto de entrada para la secuencia de comandos.
  • Indicar si la secuencia de comandos está precompilada.
  • Opcionalmente, proporcionar listas de variables de sólo lectura y de lectura y escritura para su uso en la secuencia de comandos.

La tarea Secuencia de comandos utiliza Visual Studio para Aplicaciones (VSA) como motor de escritura y ejecución de secuencias de comandos. Para ejecutar una secuencia de comandos, debe tener VSA instalado en los equipos en que se ejecute el paquete.

Para obtener más información sobre la escritura de código para la tarea Secuencia de comandos, vea Extending the Package with the Script Task.

Si la secuencia de comandos se usa en varios paquetes, considere la posibilidad de escribir una tarea personalizada en lugar de usar la tarea Secuencia de comandos. Para obtener más información, vea Developing a Custom Task.

Entorno de Visual Studio para Aplicaciones

La tarea Secuencia de comandos proporciona acceso al entorno VSA. Están disponibles todas las características estándar del entorno Visual Studio .NET, como el editor de Visual Studio con códigos de color, IntelliSense y el Explorador de objetos.

Al ejecutar el paquete, la tarea carga el motor de secuencias de comandos y ejecuta la secuencia de comandos. Puede tener acceso a ensamblados .NET externos en secuencias de comandos; para ello, debe agregar referencias a dichos ensamblados en el proyecto.

La tarea Secuencia de comandos ofrece diversas ventajas con respecto a la tarea Secuencia de comandos de ActiveX:

  • Un entorno de desarrollo integrado. VSA ofrece el mismo IDE que proporcionan otras herramientas de desarrollo de Microsoft.
  • Un depurador integrado. VSA permite depurar secuencias de comandos utilizando el mismo depurador que el proporcionado por otras herramientas de desarrollo de Microsoft. Los puntos de interrupción de la secuencia de comandos funcionan a la perfección con los puntos de interrupción de las tareas y los contenedores de Integration Services.
  • El uso de Common Language Runtime.
  • Integración con el Diseñador SSIS.

La tarea Secuencia de comandos reemplaza a la tarea Secuencia de comandos ActiveX. Utilice la tarea Secuencia de comandos ActiveX sólo cuando sea necesario por motivos de compatibilidad con versiones anteriores. Esta característica se quitará en la versión siguiente de Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan.

Optimización

Las secuencias de comandos de VSA deben compilarse antes de ejecutar el paquete. La tarea Secuencia de comandos incluye la opción de precompilar la secuencia de comandos, convirtiéndola a código binario en el momento de guardar el paquete. Al precompilar la secuencia de comandos, no se carga el motor del lenguaje en tiempo de ejecución, por lo que el paquete se ejecuta con mayor rapidez; sin embargo, los archivos binarios compilados consumen bastante espacio en disco. Si no utiliza la opción de precompilar, la secuencia de comandos se compila en tiempo de ejecución, lo que hace que la ejecución del paquete sea más lenta pero que se consuma menos espacio en disco. Si no resulta problemático almacenar paquetes de gran tamaño, se recomienda precompilar las secuencias de comandos de VSA. Además, sólo las secuencias de comandos precompiladas se pueden ejecutar en un entorno de 64 bits.

Otra consideración a tener en cuenta al elegir si se va a precompilar la secuencia de comandos es que la secuencia de comandos precompilada no se puede depurar. De forma predeterminada, la tarea Secuencia de comandos se configura para precompilar su secuencia de comandos y su propiedad PreCompile se establece en True. La propiedad PreCompile generalmente se establece en False durante el desarrollo y la depuración de un paquete, y luego se restablece en True antes de que se implemente el paquete.

Mensajes de registro personalizados disponibles en la tarea Secuencia de comandos

La siguiente tabla contiene la entrada personalizada del registro para la tarea Secuencia de comandos. Para obtener más información, vea Implementar inicios de sesión en paquetes y Mensajes personalizados para registro.

Entrada del registro Descripción

ScriptTaskLogEntry

Informa sobre los resultados de la implementación del registro en la secuencia de comandos. Se escribe una entrada del registro para cada llamada al método Log del objeto Dts. La entrada se escribe cuando se ejecuta el código. Para obtener más información, vea Logging in the Script Task.

Configurar la tarea Secuencia de comandos

Puede establecer propiedades a través del Diseñador SSIS o mediante programación.

Para obtener más información acerca de las propiedades que puede establecer en el Diseñador SSIS, haga clic en uno de los temas siguientes:

Para obtener más información sobre cómo establecer estas propiedades en el Diseñador SSIS, haga clic en el siguiente tema:

Configurar la tarea Secuencia de comandos mediante programación

Para obtener más información sobre cómo establecer estas propiedades mediante programación, haga clic en el tema siguiente:

Vea también

Conceptos

Tareas de Integration Services
Crear un flujo de control de paquetes
Consideraciones acerca de Integration Services en equipos de 64 bits

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

17 de julio de 2006

Contenido modificado:
  • Se agregó una tabla con las entradas del registro personalizadas.

5 de diciembre de 2005

Contenido modificado:
  • Se agregaron sugerencias para un mejor uso de la tarea Secuencia de comandos en comparación con el componente de secuencia de comandos.