Создание хранимых процедур

Для использования любой хранимой процедуры необходимо, чтобы она была связана с классом среды CLR или модели COM. Этот класс должен быть установлен на сервере (обычно в виде DLL-библиотеки Microsoft ActiveX®) и зарегистрирован как сборка на сервере или в базе данных служб Analysis Services.

Хранимые процедуры регистрируются на сервере или в базе данных. Серверные хранимые процедуры могут вызываться из контекста любого запроса. Доступ к хранимым процедурам базы данных имеется, только если контекст базы данных представляет собой базу данных, в которой определена хранимая процедура. Если функции одной сборки вызывают функции в другой сборке, необходимо зарегистрировать обе сборки в одном и том же контексте (сервера или базы данных). Для сервера или развернутой базы данных служб MicrosoftSQL ServerAnalysis Services на сервере можно использовать среду SQL Server Management Studio для регистрации сборки. Для проекта служб Analysis Services можно использовать конструктор служб Analysis Services для регистрации сборки в проекте.

Примечание по безопасностиПримечание по безопасности

Использование сборок COM может представлять угрозу безопасности. Поэтому, а также по другим причинам, сборки COM в службах SQL Server 2008 Analysis Services (SSAS) являются устаревшими. Поддержка сборок COM в последующих версиях может быть прекращена.

Регистрация серверной сборки

В обозревателе объектов в среде SQL Server Management Studio список серверных сборок приведен в папке «Сборки» под экземпляром служб Analysis Services. Серверные сборки могут содержать как сборки .NET (среды CLR), так и библиотеки COM.

Создание серверной сборки

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

  2. Для параметра Тип задайте тип сборки:

    • Для DLL-библиотеки управляемого кода (среда CLR) задайте сборку .NET.

    • Для DLL-библиотеки собственного кода (COM) укажите COM DLL.

  3. В поле Имя файла укажите DLL-библиотеку, содержащую хранимые процедуры.

  4. В поле Имя сборки укажите имя сборки.

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

  6. Можно нажать кнопку ОК, чтобы немедленно зарегистрировать сборку, или выбрать команду на панели инструментов окна в меню Сценарий, чтобы внести действие регистрации в сценарий в окне запросов, в файл или в буфер обмена.

После регистрации серверной сборки ее можно настроить, щелкнув ее правой кнопкой мыши в обозревателе объектов, а затем выбрав пункт Свойства.

Регистрация сборки базы данных на сервере

В обозревателе объектов в среде SQL Server Management Studio список сборок базы данных приведен в папке «Сборки» под базой данных служб Analysis Services. Сборки баз данных могут содержать как сборки .NET (среда CLR), так и библиотеки COM.

Создание сборки базы данных на сервере

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

  2. Для параметра Тип задайте тип сборки:

    • Для DLL-библиотеки управляемого кода (среда CLR) задайте сборку .NET.

    • Для DLL-библиотеки собственного кода (COM) укажите COM DLL.

  3. В поле Имя файла укажите DLL-библиотеку, содержащую хранимые процедуры.

  4. В поле Имя сборки укажите имя сборки.

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

  6. Можно нажать кнопку ОК, чтобы немедленно зарегистрировать сборку, или выбрать команду на панели инструментов окна в меню Сценарий, чтобы внести действие регистрации в сценарий в окне запросов, в файл или в буфер обмена.

После регистрации сборки базы данных ее можно настроить, щелкнув ее правой кнопкой мыши в обозревателе объектов, а затем выбрав пункт Свойства.

Регистрация сборки базы данных в проекте

В обозревателе объектов в среде Business Intelligence Development Studio список сборок базы данных приведен в папке «Сборки» под проектом служб Analysis Services. Сборки баз данных могут содержать как сборки .NET (среда CLR), так и библиотеки COM.

Создание сборки базы данных в проекте служб Analysis Service

  1. Разверните экземпляр базы данных служб Analysis Services в обозревателе объектов, щелкните правой кнопкой мыши папку Сборки, а затем выберите пункт Создать ссылку на сборку. Отобразится диалоговое окно Добавление ссылки. На вкладке .NET диалогового окна Добавление ссылки содержится список существующих сборок .NET (среды CLR), а на вкладке Проекты содержится список проектов.

  2. Можно щелкнуть существующий компонент или проект, а затем нажать кнопку Добавить, чтобы добавить его к проекту служб Analysis Services. Чтобы добавить ссылку на DLL-библиотеку COM, перейдите на вкладку Обзор, чтобы найти файл. В списке Выбранные проекты и компоненты отображаются имена, типы, версии и местоположения всех компонентов, добавляемых к проекту.

  3. По окончании выбора компонентов для добавления нажмите кнопку ОК, чтобы добавить их к проекту служб Analysis Services.

Формат сценария для сборки

Регистрация сборки .NET довольно проста. Сборка .NET добавляется к базе данных в бинарном виде с использованием следующего формата:

<Create>
   <ObjectDefinition>
      <Assembly>
         <Files>
            <File>
               <Name>filename</Name>
               <Type>filetype</Type>
               <Data>
                  <Block>binarydatablock</Block>
                  <Block>binarydatablock</Block>
                  ...
               </Data>
            </File>
         </Files>
         <PermissionSet>PermissionSet</PermissionSet>
      </Assembly>
   <ObjectDefinition>
</Create>