Share via


Identificadores (expresiones SSIS)

En las expresiones, los identificadores son columnas y variables que están disponibles para la operación. Puede utilizar en las expresiones identificadores regulares y calificados. Un identificador regular es un identificador que no necesita calificadores adicionales. Por ejemplo, MiddleName, una columna de la tabla Contacts de la base de datos AdventureWorks, es un identificador regular. Un identificador calificado es un identificador delimitado por corchetes. Si el nombre del identificador incluye espacios o el primer carácter del mismo no es una letra ni el carácter de subrayado, el identificador puede requerir un delimitador. Por ejemplo, el nombre de la columna Middle Name debe calificarse con corchetes y escribirse como [Middle Name] en una expresión.

Un paquete puede incluir orígenes de datos que expongan columnas con el mismo nombre. Para eliminar la ambigüedad de las columnas, el evaluador de expresiones admite una notación de puntos que califica el nombre de la columna con el nombre del origen. Por ejemplo, si el nombre del origen es GetGeographyData y el nombre de la columna es GeographyKey, se puede hacer referencia a la columna mediante GetGeographyData.GeographyKey.

Un paquete puede tener múltiples variables con el mismo nombre, con tal de que pertenezcan a espacios de nombres distintos. El evaluador de expresiones proporciona un operador de resolución de espacio de nombres que permite identificar las variables por su espacio de nombres. Para obtener más información, vea Sintaxis (SSIS).

Identificadores regulares

La nomenclatura de los identificadores regulares debe seguir estas reglas:

  • El primer carácter del nombre debe ser una letra, tal como se define en el Estándar Unicode 2.0, o un carácter de subrayado (_).

  • Los caracteres siguientes pueden ser letras o números, tal como se define en el Estándar Unicode 2.0, el carácter de subrayado (_), o los caracteres @, $ y #.

Nota importanteImportante

Los espacios incrustados y los caracteres especiales distintos de los especificados no son válidos en los identificadores regulares. Para poder usar espacios y caracteres especiales, debe utilizar un identificador calificado en lugar de un identificador regular.

Identificadores calificados

Si el nombre del identificador incluye espacios, o no es un nombre de identificador regular válido, el identificador debe ser calificado. El evaluador de expresiones utiliza corchetes de apertura y cierre ([]) para calificar los identificadores. Los corchetes se colocan en la primera y la última posición de la cadena. Por ejemplo, el identificador 5$> se convierte en [5$>]. Se puede usar corchetes en los nombres de columnas, variables y funciones.

Si genera expresiones con los cuadros de diálogo del Diseñador SSIS, los identificadores regulares se escriben automáticamente entre corchetes. Sin embargo, solo es necesario utilizar corchetes si el nombre incluye algún carácter no válido. Por ejemplo, la columna denominada MiddleName es válida sin corchetes.

No se puede hacer referencia a nombres de columna que incluyan corchetes en las expresiones. Por ejemplo, el nombre de la columna Columna[1] no se puede usar en una expresión. Para utilizar la columna en una expresión, se debe cambiar el nombre de la columna por un nombre sin corchetes.

Identificadores de linaje

Las expresiones pueden usar identificadores de linaje para hacer referencia a columnas. Los identificadores de linaje se asignan automáticamente al crear por primera vez el paquete. Puede ver el identificador de linaje para una columna en la ficha Propiedades de columna del cuadro de diálogo Editor avanzado del Diseñador SSIS.

Si se hace referencia a una columna por su identificador de linaje, el identificador debe incluir el prefijo #. Por ejemplo, para hacer referencia a una columna con el identificador de linaje 147, debe utilizarse #147.

Si una expresión se analiza correctamente, el evaluador de expresiones reemplaza los identificadores de linaje por nombres de columna en el cuadro de diálogo.

Nombres de columna únicos

Varios componentes de un paquete pueden exponer columnas con el mismo nombre. Si estas columnas se usan en expresiones, se debe eliminar la ambigüedad para que se puedan analizar las expresiones correctamente. El evaluador de expresiones admite la notación de puntos para identificar el origen de la columna. Por ejemplo, dos columnas denominadas Age se convierten en FlatFileSource.Age y OLEDBSource.Age, lo que indica que sus orígenes respectivos son FlatFileSource y OLEDBSource. El analizador trata el nombre completo como un nombre de columna individual.

Los nombres de componente de origen y los nombres de columna se califican por separado. Los siguientes ejemplos muestran un uso válido de los corchetes con la notación de puntos:

  • El nombre del componente de origen incluye espacios.

    [MySo urce].Age
    
  • El primer carácter del nombre de la columna no es válido.

    MySource.[#Age]
    
  • El componente de origen y los nombres de columna contienen caracteres no válidos.

    [MySource?].[#Age]
    
Nota importanteImportante

Si se escriben ambos elementos con notación de puntos entre corchetes, el evaluador de expresiones interpretará el par como un identificador individual, no como una combinación de columnas de origen.

Variables en expresiones

Para hacer referencia a estas variables en expresiones, debe incluirse el prefijo @. Por ejemplo, para hacer referencia a la variable Counter, debe utilizar @Counter. El carácter @ no forma parte del nombre de la variable; solo identifica la variable al evaluador de expresiones. Si genera expresiones a través de los cuadros de diálogo proporcionados por el Diseñador SSIS, se agrega automáticamente el carácter @ al nombre de la variable. No se permite incluir espacios entre el carácter @ y el nombre de la variable.

Los nombres de las variables siguen las mismas reglas que los otros identificadores regulares:

  • El primer carácter del nombre debe ser una letra, tal como se define en el Estándar Unicode 2.0, o un carácter de subrayado (_).

  • Los caracteres siguientes pueden ser letras o números, tal como se define en el Estándar Unicode 2.0, el carácter de subrayado (_), o los caracteres @, $ y #.

Si un nombre de variable contiene caracteres distintos de los especificados, debe escribir la variable entre corchetes. Por ejemplo, los nombres de variables con espacios deben escribirse entre corchetes. El corchete de apertura sigue al carácter @. Por ejemplo, se hace referencia a la variable My Name mediante @[My Name]. No se permite incluir espacios entre el nombre de la variable y los corchetes.

[!NOTA]

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

Nombres de variable únicos

Integration Services admite variables personalizadas y proporciona un conjunto de variables del sistema. De manera predeterminada, las variables personalizadas pertenecen al espacio de nombres Usery las variables del sistema pertenecen al espacio de nombres System. Puede crear espacios de nombres adicionales para variables personalizadas y actualizar los nombres de los espacios de nombres según las necesidades de la aplicación. El generador de expresiones muestra las variables del ámbito en todos los espacios de nombres.

Todas las variables tienen un ámbito y pertenecen a un espacio de nombres. Una variable tiene ámbito de paquete o ámbito de un contenedor o una tarea del paquete. El generador de expresiones del Diseñador SSIS muestra únicamente las variables que estén dentro del ámbito. Para obtener más información, vea Variables de Integration Services y Usar variables en paquetes.

Las variables usadas en expresiones deben tener nombres únicos para que el evaluador de expresiones evalúe la expresión correctamente. Si un paquete utiliza múltiples variables con el mismo nombre, sus espacios de nombres deben ser distintos. Integration Services proporciona un operador de resolución de espacio de nombres, que consta de dos puntos dobles (::), para calificar una variable con su espacio de nombres. Por ejemplo, la siguiente expresión utiliza dos variables denominadas Count; una pertenece al espacio de nombres Usery la otra, al espacio de nombres MyNamespace.

@[User::Count] > @[MyNamespace::Count]
Nota importanteImportante

Debe escribir la combinación de espacio de nombres y nombre calificado de la variable entre corchetes para que el evaluador de expresiones reconozca la variable.

Si el valor de Count en el espacio de nombres User es 10 y el valor de Count en el espacio de nombres MyNamespace es 2, la expresión se evalúa como true, ya que el evaluador de expresiones reconoce dos variables distintas.

Si los nombres de las variables no son únicos, no se produce un error. El evaluador de expresiones utilizará una sola instancia de la variable para evaluar la expresión y devolverá un resultado incorrecto. Por ejemplo, la siguiente expresión intenta comparar los valores (10 y 2) para dos variables Count por separado, pero la expresión se evalúa como false porque el evaluador de expresiones utiliza la misma instancia de la variable Count dos veces.

@Count > @Count