Идентификаторы (расширения интеллектуального анализа данных)
Каждый объект в службах MicrosoftSQL ServerAnalysis Services должен иметь идентификатор. Серверы, базы данных и их объекты, например источники данных, представления источников данных, кубы, измерения, модели интеллектуального анализа данных и прочие сущности, имеют идентификаторы.
При определении объекта создается идентификатор объекта. Имя объекта является его идентификатором, который затем используется для ссылки на объект.
Существует два класса идентификаторов в расширениях интеллектуального анализа данных:
Обычные идентификаторы
Идентификаторы с разделителями
Идентификаторы должны иметь длину не более 100 символов независимо от своего типа.
Обычные идентификаторы
Обычные идентификаторы — это имена, которые соответствуют правилам служб Analysis Services, установленным для формата идентификаторов. В расширениях интеллектуального анализа данных для обычных идентификаторов не требуются разделители. Далее приводится пример инструкции DMX, в котором использован обычный идентификатор без разделителей.
SELECT * FROM Clustering.CONTENT
В этом примере Clustering является именем модели интеллектуального анализа данных, а также ее идентификатором. Поскольку идентификатор не содержит пробелов и других специальных символов, он является обычным и его не нужно заключать в скобки.
Правила для обычных идентификаторов
Ниже приведены правила, установленные для формата обычных идентификаторов.
Первым символом обычного идентификатора должен быть один из следующих:
Буква в соответствии со стандартом «Юникод 2.0». Под этим подразумеваются буквы как верхнего, так и нижнего регистра латинского алфавита («а» — «z» и «A» — «Z»), а также буквенные символы других языков.
Подчеркивание (_).
Далее могут идти следующие символы:
Буквы в соответствии со стандартом «Юникод 2.0».
Десятичное число из набора символов Basic Latin или любого другого.
Подчеркивание (_).
Идентификатор не должен быть словом, зарезервированным для расширений интеллектуального анализа данных. В расширениях интеллектуального анализа данных зарезервированные слова вводятся без учета регистра. Дополнительные сведения см. в разделе Зарезервированные ключевые слова (расширения интеллектуального анализа данных).
Идентификатор не может содержать внедренные пробелы или специальные символы.
Если идентификатор не соответствует этим правилам, необходимо заключить его в квадратные скобки во время использования в инструкциях 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 до 100 символов, не включая символы-разделители.
Основная часть идентификатора может содержать любое сочетание символов, которые используются на текущей кодовой странице, включая непосредственно сами символы-разделители. Если основная часть идентификатора содержит символы-разделители, требуется специальная обработка.
Если основная часть идентификатора содержит левую скобку ([), дополнительная обработка не требуется.
Если основная часть идентификатора содержит правую скобку (]), то для отображения этого символа в пределах идентификатора необходимо указать две правых скобки (]]).
Выделенные идентификаторы с несколькими частями
При использовании уточненных имен объектов может понадобиться выделить несколько идентификаторов, составляющих имя объекта. Необходимо выделить каждый идентификатор по отдельности. В следующем примере показывается имя объекта с квалификатором, которое содержит несколько идентификаторов с разделителями.
[AdventureWorks DW 2008].[Targeted Mailing DT]
См. также