Введение в SQL Server Analysis Services для разработчика. XMLA DDL
Командой может выступать не только DML, но и DDL-запрос (Create, Alter, Delete, ...) – см. BOL. Этим XMLA превосходит MDX, который вообще не предусматривал в своем синтаксисе никаких DDL-конструкций, кроме, по-моему, создания локального куба. C версии 2005, по крайней мере, базу данных и находящиеся внутри нее объекты стало возможным заскриптовать в XMLA из SSMS по аналогии с реляционным SQL Server, когда кликаешь правой кнопкой по объекту и говоришь Generate Script. Помимо DDL, командой могут выступать другие операции над кубиками (процессить, бэкапить и пр.) Например:
Скрипт 1 рис. 1 К слову, пара замечаний по бэкапу. DatabaseID может, вообще говоря, отличаться от имени базы. Посмотреть его можно разными способами, самый простой сейчас - правокликнуть по базе в SSMS и выбрать Properties: Рис. 2 Если не указывать путь для файла бэкапа, он забэкапится в бэкапную директорию по умолчанию, задаваемую в свойствах аналитического сервера: Рис. 3 Все, что находится внутри элемента Command запроса XMLA, будь то бэкап или MDX-запрос или что угодно еще, может использоваться в качестве MDX-запроса в SSMS или AdomdCommand. Откройте File -> New -> Analysis Services MDX Query и перенесите в него из XMLA-запроса Скрипт 1 Inner Xml элемента Command: рис. 4 Видите, хотя это не в чистом виде MDX, он тем не менее выполняется. Также скобки <Execute> и <Command> можно отбрасывать на рис.1, выполняя начинку как XMLA-запрос. Как и для SQL, существуют шаблоны MDX- и XMLA-запросов, позволяющие облегчить на ранних стадиях их постижение. рис. 5 Особенно полагаться на них я бы все же не советовал. Например, если бы в изучении бэкапа мы ограничились шаблоном, то не узнали бы про существование полезного элемента <AllowOverwrite>. Несмотря на откровенную халтуру в официальной документации я бы рекомендовал BOL в качестве основного ресурса (ссылка приводилась в начале поста), потому что лучшего, к сожалению, пока все равно нет. Допустимые команды XMLA и их структуру можно видеть в разделе Child elements. Автор: Алексей Шуленин |