Variables de Integration Services

Las variables almacenan valores que un paquete de SQL Server Integration Services y sus contenedores, tareas y controladores de eventos pueden usar en tiempo de ejecución. Los scripts en la tarea Script y el componente Script también pueden usar variables. Las restricciones de precedencia que ordenan tareas y contenedores en un flujo de trabajo pueden usar variables cuando sus definiciones de restricciones incluyen expresiones.

Puede usar variables en paquetes de Integration Services para los siguientes fines:

  • Actualizar propiedades de elementos de paquete en tiempo de ejecución. Por ejemplo, puede establecer dinámicamente el número de ejecutables simultáneos que admite un contenedor de bucles Foreach.

  • Incluir una tabla de búsqueda almacenada en la memoria. Por ejemplo, un paquete puede ejecutar una tarea Ejecutar SQL que carga una variable con valores de datos.

  • Cargar variables con valores de datos y usarlas posteriormente para especificar una condición de búsqueda en una cláusula WHERE. Por ejemplo, el script de una tarea Script puede actualizar el valor de una variable que usa una instrucción Transact-SQL en una tarea Ejecutar SQL.

  • Cargar una variable con un número entero y luego usar el valor para controlar bucles dentro de un flujo de control de paquetes. Por ejemplo, puede usar una variable en la expresión de evaluación de un contenedor de bucles For para controlar la iteración.

  • Llenar valores de parámetros para instrucciones Transact-SQL en tiempo de ejecución. Por ejemplo, un paquete puede ejecutar una tarea Ejecutar SQL y luego usar variables para establecer dinámicamente los parámetros en una instrucción Transact-SQL.

  • Generar expresiones que incluyen valores de variable. Por ejemplo, la transformación Columna derivada puede llenar una columna con el resultado obtenido mediante la multiplicación de un valor de variable por un valor de columna.

Integration Services admite dos tipos de variables: variables definidas por el usuario y variables del sistema. Las variables definidas por el usuario son definidas por los desarrolladores de paquetes y las variables del sistema son definidas por Integration Services. Puede crear la cantidad de variables definidas por el usuario que requiera un paquete, pero no puede crear variables del sistema adicionales.

Todas las variables, del sistema y definidas por el usuario, se pueden usar en los enlaces de parámetros que usa la tarea Ejecutar SQL para asignar variables a parámetros en instrucciones SQL. 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.

Nota

Los nombres de variables definidas por el usuario y variables del sistema distinguen mayúsculas y minúsculas.

Puede crear variables definidas por el usuario para todos los tipos de contenedores de Integration Services: paquetes, contenedores de bucles Foreach, contenedores de bucles For, contenedores de secuencias, tareas y controladores de eventos. Las variables definidas por el usuario son miembros de la colección de variables del contenedor.

Si crea el paquete mediante el Diseñador SSIS, puede ver los miembros de las colecciones de variables en las carpetas Variables en la ficha Explorador de paquetes del Diseñador SSIS. Las carpetas enumeran las variables definidas por el usuario y variables del sistema.

Puede configurar las variables definidas por el usuario de las maneras siguientes:

  • Proporcionar un nombre y una descripción para la variable.

  • Especificar un espacio de nombres para la variable.

  • Indicar si la variable activa un evento cuando cambia su valor.

  • Indicar si la variable es de solo lectura o de lectura/escritura.

  • Usar el resultado de la evaluación de una expresión para configurar el valor de variable.

  • Crear la variable en el ámbito del paquete o un objeto de paquete, como una tarea.

  • Especificar el valor y el tipo de datos de la variable.

La única opción configurable en las variables del sistema es especificar si activan un evento cuando cambian de valor.

Hay disponible un conjunto diferente de variables del sistema para diferentes tipos de contenedor. Para obtener más información sobre las variables del sistema usadas por paquetes y sus elementos, vea Variables del sistema.

Para obtener más información acerca de escenarios de uso real para variables, vea Usar variables en paquetes.

Espacio de nombres

Integration Services proporciona dos espacios de nombres, User y System. Como opción predeterminada, las variables personalizadas están en el espacio de nombres User y las variables del sistema están en el espacio de nombres System. Puede crear espacios de nombres adicionales para variables definidas por el usuario y cambiar el nombre del espacio de nombres User, pero no puede cambiar el nombre del espacio de nombres System, agregar variables al espacio de nombres System o asignar variables del sistema a un espacio de nombres diferente.

Ámbito

Una variable se crea dentro del ámbito de un paquete o dentro del ámbito de un contenedor, tarea o controlador de evento en el paquete. Dado que el contenedor del paquete se encuentra en la parte superior de la jerarquía de contenedores, las variables con ámbito de paquete funcionan como variables globales y pueden ser usadas por todos los contenedores en el paquete. De manera similar, las variables definidas dentro del ámbito de un contenedor, como el contenedor de bucles For, pueden ser usadas por todas las tareas o contenedores dentro del contenedor de bucles For.

Si un paquete ejecuta otros paquetes mediante la tarea Ejecutar paquete, las variables definidas en el ámbito del paquete que llama o la tarea Ejecutar paquete se pueden poner a disposición del paquete llamado usando el tipo de configuración de variable de paquete primario. Para obtener más información, vea Configuraciones de paquetes de SSIS.

Valor

El valor de una variable definida por el usuario puede ser un literal o una expresión. Una variable incluye opciones para establecer el valor de la variable y el tipo de datos del valor. Las dos propiedades deben ser compatibles: por ejemplo, el uso de un valor de cadena junto con el tipo de datos de número entero no es válido.

Si la variable está configurada para evaluarse como una expresión, se debe proporcionar una expresión. En el tiempo de ejecución, se evalúa la expresión, y se establece la variable con el resultado de la evaluación. Por ejemplo, si una variable usa la expresión DATEPART("month", GETDATE()) , el valor de la variable es el equivalente numérico del mes de la fecha actual. La expresión debe ser una expresión válida que use la sintaxis de gramática de expresiones de SSIS. Cuando una expresión se usa con variables, la expresión puede usar literales y los operadores y funciones que proporciona la gramática de la expresión, pero la expresión no puede hacer referencia a las columnas desde un flujo de datos en el paquete. La longitud máxima de una expresión es 4000 caracteres. Para obtener más información, vea Referencia de expresiones de Integration Services.

Configurar variables

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 configurar en el Diseñador SSIS, vea Ventana Variables.

Configurar variables mediante programación

Para obtener más información sobre las propiedades de las variables, así como recabar obtener más información sobre la configuración mediante programación de estas propiedades, vea Variable.

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.