Построение объектов базы данных при помощи интеграции со средой 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) или возвращает значения, выполнение также должно производиться согласно последовательному плану. Дополнительные сведения см. в разделе Параллельная обработка запросов. |
Обратите внимание, что Visual Studio .NET 2003 нельзя использовать для программирования в интеграции со средой CLR. SQL Server включает предварительно установленную платформу .NET Framework, а Visual Studio .NET 2003 не может использовать сборки .NET Framework версии 2.0.
В следующей таблице приводится список подразделов этого раздела.
Приступая к работе с интеграцией со средой CLR
Содержит краткие общие сведения о библиотеках и пространствах имен, необходимых для компиляции объектов с помощью интеграции со средой CLR в SQL Server. Включает пример хранимой процедуры CLR «Hello World».Поддерживаемые библиотеки платформы .NET Framework
Содержит сведения о библиотеках .NET Framework, поддерживаемых интеграцией со средой CLR.Ограничения модели программирования на основе интеграции со средой CLR
Содержит сведения об ограничениях модели программирования интеграции со средой CLR.Типы данных SQL Server в платформе .NET Framework
Общие сведения о типах данных SQL Server и их эквивалентах в .NET Framework.Общие сведения о пользовательских атрибутах интеграции со средой CLR
Содержит сведения о пользовательских атрибутах интеграции со средой CLR.Определяемые пользователем функции среды CLR
Содержит описание того, как реализовать и использовать различные типы функций среды CLR: возвращающие табличные значения, скалярные и определяемые пользователем агрегатные функции.Определяемые пользователем типы данных CLR
Показывает, как реализовать и использовать определяемые пользователем типы данных CLR.Хранимые процедуры CLR
Показывает, как реализовать и использовать хранимые процедуры CLR.Триггеры CLR
Показывает, как реализовать и использовать триггеры CLR.