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


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

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

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

Важно!

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

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

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

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

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

  2. В поле Тип укажите тип сборки:

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

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

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

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

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

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

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

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

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

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

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

  2. В поле Тип укажите тип сборки:

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

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

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

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

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

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

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

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

В Обозреватель решений в SQL Server Data Tools сборки базы данных перечислены в папке Сборки в проекте SQL Server Analysis Services. Сборки баз данных могут содержать как сборки .NET (среда CLR), так и библиотеки COM.

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

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

  2. Можно щелкнуть существующий компонент или проект и нажать кнопку Добавить, чтобы добавить его в проект SQL Server Analysis Services. Чтобы добавить ссылку на БИБЛИОТЕКу DLL COM, перейдите на вкладку Обзор , чтобы найти файл. В списке Выбранные проекты и компоненты отображаются имя, тип, версия и расположение каждого компонента, добавляемого в проект.

  3. Завершив выбор добавляемого компонента, нажмите кнопку ОК, чтобы добавить их в проект SQL Server 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>  

См. также:

Управление сборками многомерной модели
Определение хранимых процедур