Usar variables en paquetes
Actualizado: 14 de abril de 2006
Las variables son una adición útil y flexible para los paquetes de SQL Server 2005 Integration Services (SSIS); 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 secuencias de comandos.
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 sólo 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 secuencias de comandos, 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.
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.
Tarea Secuencia de comandos y componente de secuencia de comandos Se debe proporcionar a la tarea Secuencia de comandos o al componente de secuencia de comandos una lista de variables de sólo lectura o lectura y escritura, actualizar las variables de lectura y escritura de la secuencia de comandos y, a continuación, usar los valores actualizados dentro o fuera de la secuencia de comandos. Por ejemplo, en el código numberOfCars = CType(Dts.Variables("NumberOfCars").Value, Integer)
, la variable de secuencia de comandos numberOfCars
se actualiza con el valor de la variable NumberOfCars
. Para obtener más información, vea Using Variables in the Script Task.
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
Cómo agregar una variable a un paquete mediante la ventana Variables
Cómo modificar las propiedades de una variable mediante la ventana Variables
Cómo modificar las propiedades de una variable mediante la ventana Propiedades
Cómo eliminar una variable de un paquete mediante la ventana Variables
Vea también
Otros recursos
Crear paquetes en el Diseñador SSIS
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
14 de abril de 2006 |
|