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


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

Область применения: 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 (Transact-SQL).

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

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

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

См. также