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


Создание пользовательских статистических выражений

Можно создать объект базы данных внутри 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).

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

Создание определяемой пользователем статистической функции