Создание определяемых пользователем агрегатов
Область применения: 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.