Identificadores (SSIS)
Se aplica a: SQL Server SSIS Integration Runtime en Azure Data Factory
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.
Identificadores regulares
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.
La nomenclatura de los identificadores regulares debe seguir estas reglas:
El primer carácter del nombre tiene que ser una letra (según se define en Unicode Standard 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 #.
Importante
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
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, es necesario escribir el nombre de columna Segundo nombre entre corchetes y en una expresión como [Segundo nombre].
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 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.
linaje, identificadores
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 de una columna en la pestaña 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]
Importante
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, el carácter @ se agrega automáticamente 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 tiene que ser una letra (según se define en Unicode Standard 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, para hacer referencia a la variable Mi nombre se usa @[Mi nombre]. No se permite incluir espacios entre el nombre de la variable y los corchetes.
Nota
Los nombres están definidos por el usuario y las variables del sistema distinguen mayúsculas y 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 User y 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 más información, vea Variables de Integration Services (SSIS) 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 usa varias variables con el mismo nombre, sus espacios de nombres deben ser diferentes. Integration Services proporciona un operador de resolución de espacio de nombres, formado por dos signos de dos puntos (::), 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 User y la otra al espacio de nombres MyNamespace .
@[User::Count] > @[MyNamespace::Count]
Importante
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) de dos variables Count por separado, pero la expresión da como resultado falso , ya que el evaluador de expresiones usa la misma instancia de la variable Count dos veces.
@Count > @Count
Contenido relacionado
Artículo técnico, sobre la referencia rápida de expresiones de SSIS, en pragmaticworks.com