Поделиться через


Идентификаторы (многомерные выражения)

Идентификатор — это имя объекта служб MicrosoftSQL ServerAnalysis Services. Каждый объект служб Analysis Services должен иметь идентификатор. Это относится к кубам, измерениям, иерархиям, уровням, элементам и т.п. Идентификатор можно использовать для обращения к объекту в инструкциях многомерных выражений.

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

ПримечаниеПримечание

И обычные идентификаторы, и идентификаторы с разделителями должны содержать от 1 до 100 символов.

Обычные идентификаторы

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

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

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

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

    • Символ подчеркивания (_).

  2. Далее могут идти следующие символы.

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

    • Десятичные числа из набора символов Basic Latin или любого другого.

    • Символ подчеркивания (_).

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

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

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

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

SELECT Measures.MEMBERS ON COLUMNS,

Product.Style.CHILDREN ON ROWS

FROM [Adventure Works]

При необходимости в обычных идентификаторах можно использовать разделители. В следующей инструкции многомерных выражений обычные идентификаторы Measures, Product и Style корректно разделены с помощью квадратных скобок.

SELECT [Measures].MEMBERS ON COLUMNS,

[Product].[Style].CHILDREN ON ROWS

FROM [Adventure Works]

Использование идентификаторов с разделителями

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

ПримечаниеПримечание

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

Идентификаторы с разделителями используются в следующих случаях.

  • Если в имени или в части имени объекта используется зарезервированное слово.

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

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

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

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

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

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

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

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

В следующем примере инструкции многомерных выражений идентификаторы Sales Volume, Sales 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].MEMBERS ON COLUMNS,

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

FROM [Adventure Works]

Помимо этого, в предыдущем примере выделен идентификатор Measures, чтобы продемонстрировать разделение нескольких идентификаторов.