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

Применимо к: SQL Server (все поддерживаемые версии)

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

Примечание

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

Начиная с SQL Server 2005 (9.x), можно использовать определяемые пользователем типы (определяемые пользователем типы) для расширения системы скалярных типов сервера, что позволяет хранить объекты 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.