Пользовательские типы CLR

Применимо к:SQL Server

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

Примечание

Возможность выполнения кода CLR по умолчанию имеет значение OFF в SQL Server. Среду CLR можно включить с помощью системной хранимой процедуры sp_configure .

Начиная с SQL Server 2005 (9.x), вы можете использовать определяемые пользователем типы (UT) для расширения системы скалярных типов сервера, обеспечивая хранение объектов CLR в базе данных SQL Server. Определяемые пользователем типы могут содержать несколько элементов, и их поведение может отличаться от традиционных псевдонимов типов данных, состоящих из одного системного типа данных SQL Server.

Система обращается к определяемым пользователем типам как к единым объектам, поэтому их использование для сложных типов данных может негативно отразиться на производительности. Для моделирования сложных данных лучше подходят обычные строки и таблицы. Определяемые пользователем функции в SQL Server хорошо подходят для следующих задач:

  • Значения даты, времени, валюты и расширенные числовые типы

  • Данные геопространственных приложений

  • Закодированные или зашифрованные данные

Процесс разработки определяемых пользователем типов в SQL Server состоит из следующих этапов:

  1. Кодирование и построение сборки, определяющей определяемый пользователем тип. Определяемые пользователем типы определяются с помощью любого языка, поддерживаемого средой CLR платформы .NET Framework и создающего проверяемый код. Среди таких языков Visual C# и Visual Basic .NET. Доступ к данным предоставляется как к полям и свойствам класса или структуры платформы .NET Framework, а поведение определяется методами класса или структуры.

  2. Регистрирует сборку. Определяемые пользователем функции можно развернуть с помощью пользовательского интерфейса Visual Studio в проекте базы данных или с помощью инструкции Transact-SQL CREATE ASSEMBLY, которая копирует сборку, содержащую класс или структуру, в базу данных.

  3. Создание определяемого пользователем типа в SQL Server. После загрузки сборки в базу данных узла используйте инструкцию Transact-SQL CREATE TYPE для создания определяемого пользователем типа и предоставления членов класса или структуры в качестве членов определяемого пользователем типа. Определяемые пользователем типы существуют только в контексте одной базы данных, а после регистрации они не имеют зависимостей от внешних файлов, из которых были созданы.

    Примечание

    До SQL Server 2005 (9.x) определяемые пользователем функции, созданные из платформа .NET Framework сборок, не поддерживались. Однако вы по-прежнему можете использовать SQL Server псевдонимы типов данных с помощью sp_addtype. Синтаксис CREATE TYPE можно использовать для создания собственных SQL Server определяемых пользователем типов данных и определяемых пользователем типов данных.

  4. Создание таблиц, переменных или параметров с помощью определяемого пользователем типа Начиная с SQL Server 2005 (9.x), определяемый пользователем тип можно использовать как определение столбца таблицы, как переменную в пакете Transact-SQL или как аргумент функции Transact-SQL или хранимой процедуры.

В этом разделе

Создание типа User-Defined
Описывает способ создания определяемых пользователем типов.

Регистрация определяемых пользователем типов в SQL Server
Описывается регистрация определяемых пользователем типов и управление ими в SQL Server.

Работа с определяемыми пользователем типами в SQL Server
Описывает способ создания запросов при помощи определяемых пользователем типов.

Доступ к определяемым пользователем типам в ADO.NET
Описывается работа с определяемых пользователем типов с помощью поставщика данных платформа .NET Framework для SQL Server в ADO.NET.