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


Создание определяемых пользователем агрегатов

Область применения: SQL Server 2016 (13.x) и более поздних версий

Объект базы данных можно создать внутри SQL Server, который запрограммирован в сборке СРЕДЫ CLR. Объекты базы данных, которые могут использовать расширенную модель программирования, предоставляемую средой CLR, включают триггеры, хранимые процедуры, функции, агрегатные функции и типы.

Как и встроенные агрегатные функции, предоставляемые в Transact-SQL, определяемые пользователем агрегатные функции выполняют вычисление набора значений и возвращают одно значение.

Создание определяемой пользователем агрегатной функции в SQL Server включает следующие действия.

  • Определите определяемую пользователем агрегатную функцию в качестве класса на языке, поддерживаемом корпорацией Майкрософт платформа .NET Framework. Дополнительные сведения о программировании определяемых пользователем агрегатов в CLR см. в определяемых пользователем агрегатов CLR. Скомпилируйте этот класс для построения сборки среды CLR, используя соответствующий языку компилятор.

  • Зарегистрируйте сборку в SQL Server с помощью инструкции CREATE ASSEMBLY. Дополнительные сведения о сборках в SQL Server см. в разделе "Сборки" (ядро СУБД).

  • Создайте определяемую пользователем агрегатную обработку, которая ссылается на зарегистрированную сборку с помощью инструкции CREATE AGGREGATE.

Выполнение кода CLR по умолчанию отключено в SQL Server. Можно создавать, изменять и удалять объекты базы данных, ссылающиеся на модули управляемого кода, но эти ссылки не выполняются в SQL Server, если только параметр clr не включен конфигурации сервера с помощью sp_configure.

Развертывание проекта SQL Server в Microsoft Visual Studio регистрирует сборку в базе данных, указанной для проекта. При развертывании проекта также создаются функции CLR в базе данных для всех методов, аннотированных атрибутом SqlFunction. Дополнительные сведения см. в развертывании объектов базы данных CLR.

Создание, изменение или удаление сборки

Создание определяемого пользователем агрегата