Идентификаторы (MDX)

Идентификатор — это название объекта Analysis Services. Каждый объект может и должен иметь идентификатор. Сюда входят кубы, размерности, иерархии, уровни, члены и так далее. Идентификатор объекта используется для ссылки на объект в операторах многомерных выражений (MDX).

В зависимости от того, как вы называете объект, идентификатор объекта будет либо обычным, либо разграничённым.

Замечание

Обычные и разграничённые идентификаторы должны содержать от 1 до 100 символов.

Использование обычных идентификаторов

Регулярный идентификатор — это имя объекта, которое соответствует следующим правилам форматирования для обычных идентификаторов. Обычный идентификатор может использоваться как с разделителями, так и без них.

Правила форматирования обычных идентификаторов

  1. Первый символ должен быть одним из следующих:

    • Буква, определенная стандартом Unicode 2.0. Помимо буквенных символов из других языков, определение букв в Unicode включает латинские символы от a до z и от A до Z.

    • Фонограмма (_).

  2. Последующие персонажи могут быть:

    • Буквы в соответствии с определением стандарта Unicode 2.0.

    • Десятичные числа из базовой латини или других национальных скриптов.

    • Фонограмма (_).

  3. Идентификатор не должен быть ключевым словом, зарезервированным MDX. Зарезервированные ключевые слова в MDX не чувствительны к регистру. Для получения дополнительной информации см. Зарезервированные ключевые слова (синтаксис MDX).

  4. Внедренные пробелы или специальные символы не допускаются.

Примеры регулярных идентификаторов

В следующем операторе MDX идентификаторы Measures, Product, и Style, соответствуют правилам форматирования для обычных идентификаторов. Эти обычные идентификаторы не нуждаются в разделителях.

SELECT Measures.MEMBERS ON COLUMNS,  
Product.Style.CHILDREN ON ROWS  
FROM [Adventure Works]  
  

Хотя это не обязательно, вы также можете использовать разделители с обычными идентификаторами. В следующем операторе MDX Measuresидентификаторы , Product, и Style обычные были правильно разделены с помощью скобок.

SELECT [Measures].MEMBERS ON COLUMNS,  
[Product].[Style].CHILDREN ON ROWS  
FROM [Adventure Works]  
  

Использование разграничённых идентификаторов

Идентификатор, не соответствующий правилам форматирования обычных идентификаторов, всегда должен быть разграничён с помощью скобок ([]).

Замечание

Разделители предназначены только для идентификаторов. Разделители нельзя использовать для ключевых слов, независимо от того, отмечены ли они как зарезервированные в аналитических сервисах.

Вы используете ограниченный идентификатор в следующих ситуациях:

  • Когда название объекта или его части использует зарезервированные слова.

    Мы рекомендуем не использовать зарезервированные ключевые слова в качестве имён объектов. Базы данных, обновлённые по сравнению с предыдущими версиями Analysis Services, могут содержать идентификаторы, включающие слова, не зарезервированные в предыдущей версии, но теперь зарезервированные. Пока вы не сможете изменить идентификатор объекта, вы можете ссылаться на объект с помощью разделённого идентификатора.

  • Когда имя объекта использует символы, не указанные как квалифицированные идентификаторы.

    Analysis Services позволяет использовать любой символ на текущей кодовой странице. Однако беспорядочное использование специальных символов в имени объекта может затруднить чтение и поддержание MDX-операторов и скриптов.

Правила форматирования для разделённых идентификаторов

Тело разграничённого идентификатора может содержать любую комбинацию символов на текущей кодовой странице, включая сами разделяющие символы. Если в теле разграничённого идентификатора есть разгранивающие символы, требуется специальная обработка:

  • Если в теле идентификатора есть только левая скобка ([), дополнительная обработка не требуется.

  • Если тело идентификатора содержит правую скобку (]), необходимо указать две правые скобки (]]).

Примеры разграничённых идентификаторов

В следующем гипотетическом высказывании MDX , Sales VolumeSales Cube, и select — это разграничённые идентификаторы:

-- 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.  

В следующем примере имя объекта — Total Profit [Domestic]. Для ссылки на этот объект необходимо использовать следующий разделённый идентификатор:

[Total Profit [Domestic]]]

Обратите внимание, что ранее Domestic левую скобку не нужно было менять для создания идентификатора. Однако правая скобка пришлось Domestic заменить двумя правыми.

Разграничение идентификаторов с несколькими частями

При использовании квалифицированных имен объектов, возможно, придётся ограничить несколько идентификаторов, составляющих имя объекта. Например, идентификатор Front Brakes в следующем коде требует разграничения.

SELECT [Измерения]. ЧЛЕНЫ НА КОЛОНКАХ,

[Продукт]. [Продукт]. [Передние тормоза] НА РЯДАХ

ИЗ [Приключенческие работы]

Кроме того, идентификатор Measures в предыдущем примере был ограничен для демонстрации разграничения более одного идентификатора.