Identificadores (MDX)

Un identificador es el nombre de un objeto de Microsoft SQL Server Analysis Services. Cada objeto de Analysis Services puede y debe tener un identificador. Esto incluye cubos, dimensiones, jerarquías, niveles, miembros, etc. El identificador de un objeto se utiliza para hacer referencia al objeto en instrucciones de expresiones multidimensionales (MDX).

En función del nombre del objeto, el identificador del objeto será bien un identificador normal o delimitado.

[!NOTA]

Ambos identificadores, normales y delimitados, deben tener entre 1 y 100 caracteres.

Usar identificadores normales

Un identificador normal es un nombre de objeto que cumple las siguientes reglas de formato para identificadores normales. Los identificadores normales pueden usarse con o sin delimitadores.

Reglas de formato para los identificadores normales

  1. El primer carácter debe ser alguno de los siguientes:

    • Una letra, tal como se define en el estándar Unicode 2.0. Además de letras de otros idiomas, la definición Unicode de letras incluye caracteres latinos de la "a" a la "z" y de la "A" a la "Z".

    • El carácter de subrayado (_).

  2. Los caracteres siguientes pueden ser:

    • Letras, tal como se definen en el estándar Unicode 2.0.

    • Números decimales de tipo latino básico o demás sistemas de escritura nacionales.

    • El carácter de subrayado (_).

  3. El identificador no debe ser una palabra clave reservada de DMX. Las palabras clave reservadas de DMX no distinguen entre mayúsculas y minúsculas. Para obtener más información, vea Palabras clave reservadas (sintaxis de MDX).

  4. No se permiten los caracteres especiales o los espacios incrustados.

Ejemplos de identificadores normales

En la siguiente instrucción MDX, los identificadores Measures, Product y Style cumplen las reglas de formato de los identificadores normales. Dichos identificadores normales no precisan delimitadores.

SELECT Measures.MEMBERS ON COLUMNS,

Product.Style.CHILDREN ON ROWS

FROM [Adventure Works]

 

Aunque no son necesarios, también se pueden usar delimitadores con los identificadores normales. En la siguiente instrucción MDX, los identificadores normales Measures, Product y Style se han delimitado correctamente mediante corchetes.

SELECT [Measures].MEMBERS ON COLUMNS,

[Product].[Style].CHILDREN ON ROWS

FROM [Adventure Works]

 

Usar identificadores delimitados

Si un identificador no sigue las reglas de formato de los identificadores normales, debe aparecer siempre delimitado mediante corchetes ([]).

[!NOTA]

Los delimitadores solo pueden utilizarse para los identificadores. No es posible utilizar delimitadores para palabras clave, estén o no marcadas como reservadas en Analysis Services.

Los identificadores delimitados se emplean en las siguientes situaciones:

  • Cuando el nombre de un objeto o parte del nombre incluye palabras reservadas.

    Se recomienda no utilizar palabras clave reservadas como nombres de objeto. Las bases de datos actualizadas desde versiones anteriores de Analysis Services pueden contener identificadores que incluyan palabras que no estaban reservadas en la versión anterior, pero que sí lo están en SQL Server Analysis Services. Hasta que pueda cambiar el identificador del objeto, puede hacer referencia al objeto mediante un identificador delimitado.

  • Cuando el nombre de un objeto contiene caracteres no incluidos en la lista de identificadores calificados.

    Analysis Services permite que los identificadores delimitados utilicen cualquier carácter de la página de códigos actual. No obstante, el uso indiscriminado de caracteres especiales en los nombres de objeto puede hacer que las instrucciones y scripts MDX resulten difíciles de leer y de mantener.

Reglas de formato para los identificadores delimitados

La parte de cuerpo de un identificador delimitado puede contener cualquier combinación de caracteres de la página de códigos actual, incluidos los propios caracteres delimitadores. Si el cuerpo del identificador delimitado contiene caracteres delimitadores, será necesario un tratamiento especial:

  • Si el cuerpo del identificador solamente contiene un corchete de apertura ([), no se requiere ninguna manipulación.

  • Si el cuerpo del identificador contiene un corchete de cierre (]), deberá especificar dos corchetes de cierre (]]).

Ejemplos de identificadores delimitados

En la siguiente instrucción MDX hipotética, Sales Volume, Sales Cube y select son identificadores delimitados:

-- The [Sales Volume] and [Sales Cube] identifiers contain a space.

SELECT Measures.[Sales Volume]

FROM [Sales Cube]

WHERE Product.[select]

-- The [select] identifier is a reserved keyword.

En el siguiente ejemplo, el nombre del objeto es Total Profit [Domestic]. Para hacer referencia al mismo es necesario utilizar el siguiente identificador delimitado:

[Total Profit [Domestic]]]

Observe que no ha sido necesario cambiar el corchete de apertura situado justo delante de Domestic para crear el identificador delimitado. Sin embargo, el corchete de cierre situado detrás de Domestic sí ha tenido que ser reemplazado por dos corchetes de cierre.

Delimitar identificadores con varias partes

Cuando se utilizan nombres de objetos completos, podría ser necesario delimitar varios de los identificadores que componen el nombre del objeto. Por ejemplo, es necesario delimitar el identificador Front Brakes que aparece en el siguiente código.

SELECT [Measures].MEMBERS ON COLUMNS,

[Product].[Product].[Front Brakes] ON ROWS

FROM [Adventure Works]

También se ha delimitado el identificador Measures del ejemplo anterior para mostrar la delimitación de más de un identificador.

Vea también

Conceptos

Referencia del lenguaje MDX (MDX)

Elementos de la sintaxis de MDX (MDX)

Otros recursos

Aspectos básicos de las consultas MDX (Analysis Services)