Usar variables en paquetes

Las variables son una adición útil y flexible para los paquetes de Integration Services; las variables pueden permitir la comunicación entre los objetos del paquete y entre los paquetes primarios y secundarios. También se pueden utiliza variables en expresiones y scripts.

Variables del sistema y definidas por el usuario

Integration Services proporciona variables del sistema y admite las variables definidas por el usuario. Al crear un paquete y agregar un contenedor o una tarea a un paquete, o crear un controlador de eventos, Integration Services incluye un conjunto de variables del sistema para el contenedor. Las variables del sistema contienen información útil sobre el paquete, el contenedor, la tarea o el controlador de eventos. Por ejemplo, en tiempo de ejecución, la variable del sistema MachineName contiene el nombre del equipo en el que se ejecuta el paquete y la variable StartTime, la hora a la que se empezó a ejecutar el paquete. Las variables del sistema son de solo lectura. Para obtener más información, vea Variables del sistema.

Puede crear variables definidas por el usuario y utilizarlas en los paquetes. Las variables definidas por el usuario se pueden utilizar de muchas formas en SSIS: en scripts, en las expresiones utilizadas por las restricciones de precedencia, el contenedor de bucles For, la transformación Columna derivada y la transformación División condicional, y en las expresiones de propiedad que actualizan los valores de las propiedades.

Por ejemplo, puede utilizar una variable definida por el usuario en la condición de evaluación del contenedor de bucles For. También puede asignar el valor de colección del enumerador de un contenedor de bucles Foreach a una variable y, si una tarea Ejecutar SQL utiliza una instrucción SQL con parámetros, puede asignar los parámetros de la instrucción a variables. Para obtener más información, vea Variables de Integration Services.

Escenarios del uso de variables

Las variables se usan de muchas formas distintas en los paquetes de Integration Services. Es probable que observe que el desarrollo de un paquete no avanza mucho antes de que tenga que agregar al paquete una variable definida por el usuario para lograr la flexibilidad y facilidad de uso que requiere la solución. Según el escenario de que se trate, las variables del sistema también se usan a menudo.

Expresiones de propiedad   Use variables para proporcionar valores en las expresiones de propiedad que definen las propiedades de los paquetes y los objetos de paquete. Por ejemplo, la expresión SELECT * FROM @varTableName contiene la variable varTableName, que actualiza la instrucción SQL ejecutada por la tarea Ejecutar SQL. La expresión DATEPART("d", GETDATE()) == 1? @[User::varPackageFirst]:@[User::varPackageOther] actualiza el paquete ejecutado por la tarea Ejecutar paquete, mediante la ejecución del paquete especificado en la variable varPackageFirst el primer día de cada mes y la ejecución del paquete especificado en la variable varPackageOther los demás días. Para obtener más información, vea Usar expresiones de propiedad en paquetes.

Expresiones de flujo de datos   Use variables para proporcionar los valores de las expresiones utilizadas por las transformaciones Columna derivada y División condicional para llenar columnas o dirigir filas de datos a distintas salidas de transformación. Por ejemplo, la expresión @varSalutation + LastName concatena el valor de la variable VarSalutation y el de la columna LastName. La expresión Income < @HighIncome dirige a un resultado las filas de datos cuyo valor de la columna Income es menor que el valor de la variable HighIncome. Para obtener más información, vea Transformación Columna derivada, Transformación División condicional y Usar expresiones en paquetes.

Expresiones de restricción de precedencia Se deben proporcionar valores para su uso en restricciones de precedencia para determinar si se ejecuta el ejecutable restringido. Las expresiones se pueden usar con un resultado de la ejecución (satisfactoria, errónea, terminada), o en lugar de un resultado de la ejecución. Por ejemplo, si la expresión @varMax > @varMin resulta en el valor true, se ejecuta el ejecutable. Para obtener más información, vea Agregar expresiones a las restricciones de precedencia.

Parámetros y códigos de retorno Se deben proporcionar valores para los parámetros de entrada, o almacenar los valores de los parámetros de salida y los códigos de retorno. Para ello, se asignan las variables a los parámetros y códigos de retorno. Por ejemplo, si se establece la variable varProductId en 23 y se ejecuta la instrucción SQL SELECT * from Production.Product WHERE ProductID = ?, la consulta recupera el producto cuyo ProductID sea 23. Para obtener más información, vea Tarea Ejecutar SQL de SSIS y Trabajar con parámetros y códigos de retorno en la tarea Ejecutar SQL.

Expresiones del bucle For   Se deben proporcionar valores para su uso en las expresiones de inicialización, evaluación y asignación del bucle For. Por ejemplo, si la variable varCount es 2 y varMaxCount es 10, la expresión de inicialización es @varCount, la expresión de evaluación es @varCount < @varMaxCount y la expresión de asignación es @varCount =@varCount +1, el bucle se repite 8 veces. Para obtener más información, vea Contenedor de bucles For.

Configuraciones de variables de paquete primario   Los valores de los paquetes primarios se deben pasar a los paquetes secundarios. Los paquetes secundarios pueden tener acceso a las variables del paquete primario utilizando configuraciones de variables de paquete primario. Por ejemplo, si el paquete secundario debe usar los mismos datos que el paquete primario, el secundario puede definir una configuración de variables de paquete primario que especifique una variable establecida por la función GETDATE en el paquete primario. Para obtener más información, vea Tarea Ejecutar paquete y Configuraciones de paquetes de SSIS.

Tarea Script y componente de script   Se debe proporcionar a la tarea Script o al componente de script una lista de variables de solo lectura o lectura/escritura, actualizar las variables de lectura/escritura del script y, a continuación, usar los valores actualizados dentro o fuera del script. Por ejemplo, en el código numberOfCars = CType(Dts.Variables("NumberOfCars").Value, Integer), la variable de script numberOfCars se actualiza con el valor de la variable NumberOfCars. Para obtener más información, vea Utilizar variables en la tarea Script.

Configuraciones y variables

Para actualizar dinámicamente las variables, puede crear configuraciones para las variables, implementar las configuraciones con el paquete y después, actualizar los valores de las variables en el archivo de configuración al implementar los paquetes. El paquete utiliza los valores actualizados de las variables en tiempo de ejecución. Para obtener más información, vea Crear configuraciones de paquetes.

Para agregar, modificar y eliminar variables definidas por el usuario

Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las más recientes descargas, artículos, ejemplos y vídeos de Microsoft, así como soluciones seleccionadas de la comunidad, visite la página de Integration Services en MSDN o TechNet:

Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.