Создание определяемых пользователем агрегатных функций
Можно создать объект базы данных внутри SQL Server, который запрограммирован в сборке среды CLR. В число объектов базы данных, способных эффективно использовать предоставляемую средой CLR многофункциональную модель программирования, входят триггеры, хранимые процедуры, функции, агрегатные функции и типы.
Подобно встроенным агрегатным функциям, предоставленным в Transact-SQL, пользовательские агрегатные функции производят вычисление в ряде значений и возвращают одиночное значение.
Создание пользовательской агрегатной функции в SQL Server включает в себя следующие шаги.
Определите пользовательскую агрегатную функцию как класс на языке, поддерживаемом платформой Microsoft .NET. Дополнительные сведения о программировании определяемых пользователем статистических функций в среде CLR см. в разделе Пользовательские агрегатные функции среды CLR. Скомпилируйте этот класс для построения сборки среды CLR, используя соответствующий языку компилятор.
Зарегистрируйте сборку в SQL Server с помощью инструкции CREATE ASSEMBLY. Дополнительные сведения о сборках в SQL Server см. в разделе Сборки (компонент Database Engine).
Создайте пользовательское статистическое выражение, которое ссылается на зарегистрированную сборку, используя инструкцию CREATE AGGREGATE.
Примечание |
---|
Развертывание проекта SQL Server в Microsoft Visual Studio регистрирует сборку в базе данных, указанную для проекта. Развертывание проекта также создает пользовательские статистические функции в базе данных для всех классов, которые могут иметь атрибут SqlUserDefinedAggregate. Дополнительные сведения см. в разделе Развертывание объектов базы данных CLR. |
Примечание |
---|
Возможность SQL Server выполнять код CLR по умолчанию отключена. Можно создавать, изменять и удалять объекты базы данных, которые ссылаются на модули управляемого кода, но эти ссылки не будут выполнены в SQL Server, пока параметр clr enabled не получит значение True с помощью хранимой процедуры sp_configure (Transact-SQL). |
Создание, изменение или удаление сборки
Создание пользовательской статистической функции
См. также
Другие ресурсы
Основные понятия о программировании интеграции со средой CLR