Определяемые пользователем типы данных CLR

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

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

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

Начиная с версии SQL Server 2005, определяемые пользователем типы можно использовать для расширения системы скалярных типов сервера, благодаря чему в базе данных SQL Server становится возможным хранение объектов среды CLR. Определяемые пользователем типы могут содержать несколько элементов, а их поведение может отличаться от традиционных псевдонимов типов данных, состоящих из одного системного типа данных 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, а элементы класса или структуры представляются, как элементы этого типа. Определяемые пользователем типы существуют только в контексте одной базы данных, а после регистрации они не имеют зависимостей от внешних файлов, из которых были созданы.

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

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

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

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