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


Идентификаторы (расширения интеллектуального анализа данных)

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

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

Существует два класса идентификаторов в расширениях интеллектуального анализа данных:

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

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

Идентификаторы должны иметь длину не более 100 символов независимо от своего типа.

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

Обычные идентификаторы — это имена, которые соответствуют правилам служб Analysis Services, установленным для формата идентификаторов. В расширениях интеллектуального анализа данных для обычных идентификаторов не требуются разделители. Далее приводится пример инструкции DMX, в котором использован обычный идентификатор без разделителей.

SELECT * FROM Clustering.CONTENT

В этом примере Clustering является именем модели интеллектуального анализа данных, а также ее идентификатором. Поскольку идентификатор не содержит пробелов и других специальных символов, он является обычным и его не нужно заключать в скобки.

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

Ниже приведены правила, установленные для формата обычных идентификаторов.

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

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

    • Подчеркивание (_).

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

    • Буквы в соответствии со стандартом «Юникод 2.0».

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

    • Подчеркивание (_).

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

  4. Идентификатор не может содержать внедренные пробелы или специальные символы.

Если идентификатор не соответствует этим правилам, необходимо заключить его в квадратные скобки во время использования в инструкциях DMX.

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

Идентификаторы с разделителями заключаются в квадратные скобки ([ ]). Далее приводится пример инструкции DMX с идентификатором с разделителем.

SELECT * FROM [Marketing_Clusters].CONTENT

В этом примере идентификатором модели интеллектуального анализа данных служит [Marketing_Clusters]. Имя заключается в скобки, хотя оно соответствует требованиям, предъявляемым к обычным идентификаторам. Многие считают, что следует использовать скобки для всех идентификаторов, даже если скобки необязательны, чтобы повысить ясность кода и сократить проблемы с сопровождением и миграцией кода.

Идентификаторы, не соответствующие правилам формата обычных идентификаторов, всегда необходимо использовать с разделителями. Далее приводится пример инструкции DMX для расширения интеллектуального анализа данных с идентификатором с разделителем, который содержит пробел.

SELECT * FROM [Targeted Mailing].CONTENT

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

  • При использовании зарезервированных слов для имен объектов или их частей.

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

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

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

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

    В случае обновления базы данных служб Analysis Services с предыдущей версии до версии SQL Server 2008 некоторые имена объектов могут быть изменены для сохранения уникальности. Дополнительные сведения см. в разделе Критические изменения функций служб Analysis Services в SQL Server 2008.

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

Ниже приведены правила, установленные для формата идентификаторов с разделителями.

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

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

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

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

Выделенные идентификаторы с несколькими частями

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

[AdventureWorks DW 2008].[Targeted Mailing DT]