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


Построение объектов базы данных при помощи интеграции со средой CLR

Объекты базы данных можно создавать с помощью интеграции SQL Server со средой CLR платформы .NET Framework. Управляемый код, выполняющийся в Microsoft SQL Server, называется подпрограммами CLR. Эти подпрограммы включают:

  • определяемые пользователем функции, возвращающие скалярное значение (скалярные определяемые пользователем функции);

  • определяемые пользователем функции, возвращающие табличные значения (возвращающие табличное значение функции);

  • определяемые пользователем процедуры (определяемые пользователем процедуры);

  • определяемые пользователем триггеры.

Подпрограммы CLR в управляемом коде имеют одинаковую структуру. Они сопоставляются с публичными статическими методами класса (используемыми совместно с Microsoft Visual Basic .NET). Кроме подпрограмм, с помощью .NET Framework можно определять пользовательские типы (UDT) и определяемые пользователем агрегатные функции. Определяемые пользователем типы и определяемые пользователем статистические функции сопоставляются с целыми классами .NET Framework.

Каждый вид подпрограммы .NET Framework имеет декларацию Transact-SQL и может использоваться в SQL Server везде, где может использоваться его эквивалент Transact-SQL. Например, скалярные определяемые пользователем функции могут использоваться во всех скалярных выражениях. Возвращающая табличное значение функция может использоваться в любом предложении FROM. Процедура может вызываться в инструкции EXEC или из клиентского приложения.

ПримечаниеПримечание

Выполнение объекта CLR (определяемой пользователем функции, определяемого пользователем типа или триггера) в среде CLR может производиться в нескольких потоках (параллельный план), если оптимизатор запросов посчитает это более выгодным. Однако, если доступ к данным выполняет определяемая пользователем функция, выполнение будет осуществляться согласно последовательному плану. При выполнении на сервере, имеющем версию, предшествующую SQL Server 2008, в случае, если определяемая пользователем функция содержит параметры или возвращает значения больших объектов (LOB), выполнение также должно производиться согласно последовательному плану.

В следующей таблице приводится список подразделов этого раздела.

См. также

Другие ресурсы

Общие сведения об интеграции со средой CLR