Создание функций CLR
В SQL Server 2005 можно создать объект базы данных в экземпляре SQL Server, который запрограммирован в сборке, созданной на платформе Microsoft .NET Framework среды CLR. К объектам базы данных, способным обогатить возможности применения многофункциональной модели программирования среды CLR, относятся статистические функции, функции, хранимые процедуры, триггеры и типы.
Чтобы создать функцию CLR в SQL Server, необходимо выполнить следующие шаги:
- Определить функцию как статический метод класса на языке, поддерживаемом .NET Framework. Дополнительные сведения о программировании функций в среде CLR см. в разделе CLR User-Defined Functions. После этого следует скомпилировать класс для создания сборки в платформе .NET Framework, с помощью компилятора соответствующего языка.
- Зарегистрируйте эту сборку в SQL Server с помощью инструкции CREATE ASSEMBLY. Дополнительные сведения о сборках в SQL Server см. в разделе Сборки (компонент Database Engine).
- Создать функцию, ссылающуюся на зарегистрированную сборку, с помощью инструкции CREATE FUNCTION.
Примечание. |
---|
Развертывание проекта SQL Server в Microsoft Visual Studio регистрирует сборку в базе данных, указанную для проекта. Кроме того, в базе данных создаются функции CLR для всех методов, сопровождаемых атрибутом SqlFunction. Дополнительные сведения см. в разделе Deploying CLR Database Objects. |
Примечание. |
---|
Возможность SQL Server выполнять код CLR по умолчанию отключена. Можно создавать, изменять и удалять объекты базы данных, которые ссылаются на модули управляемого кода, но эти ссылки не будут выполнены в SQL Server, пока не будет включен параметр clr enabled с помощью процедуры sp_configure (Transact-SQL). |
Доступ к внешним ресурсам
Функции CLR могут использоваться для доступа к внешним ресурсам, например файлам, сетевым ресурсам, веб-службам, другим базам данных (в том числе и удаленным экземплярам SQL Server). Этого можно достичь, используя различные классы .NET Framework, например System.IO
, System.WebServices
, System.Sql
и другие. Сборка, содержащая такие функции, должна иметь как минимум разрешения EXTERNAL_ACCESS, чтобы иметь доступ к внешним ресурсам. Дополнительные сведения см. в разделе CREATE ASSEMBLY (Transact-SQL). Для доступа к удаленным экземплярам SQL Server можно использовать управляемый поставщик клиента SQL (SQL Client Managed Provider). Однако замыкание соединений на сервер-источник в функциях CLR не поддерживается.
Создание, изменение и удаление сборок в SQL Server
Создание функции CLR
См. также
Основные понятия
Создание пользовательских функций (Database Engine)
Создание пользовательских статистических выражений
Выполнение пользовательских функций (компонент Database Engine)
Просмотр пользовательских функций
Другие ресурсы
Database Engine .NET Framework Programming