Определяемые пользователем типы данных 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 состоит из следующих шагов:
Программирование и построение сборки, которая определяет пользовательский тип. Определяемые пользователем типы определяются с помощью любого языка, поддерживаемого средой CLR платформы .NET Framework, который формирует доступный для проверки код. Среди таких языков Visual C# и Visual Basic .NET. Данные выдаются, как поля и свойства класса или структуры платформы .NET Framework, а поведения определяются методами этого класса или структуры.
Регистрация сборки. Определяемые пользователем типы можно развертывать в проекте базы данных с помощью пользовательского интерфейса Visual Studio или с помощью инструкции Transact-SQL CREATE ASSEMBLY, которая копирует сборку, содержащую класс или структуру, в базу данных.
Создание определяемого пользователем типа на SQL Server. После загрузки сборки в базу данных определяемый пользователем тип создается при помощи инструкции Transact-SQL, а элементы класса или структуры представляются, как элементы этого типа. Определяемые пользователем типы существуют только в контексте одной базы данных, а после регистрации они не имеют зависимостей от внешних файлов, из которых были созданы.
ПримечаниеДо версии SQL Server 2005 созданные из сборок платформы .NET Framework определяемые пользователем типы не поддерживались. Однако в SQL Server 2005 и SQL Server 2008 при помощи процедуры sp_addtype можно использовать типы данных псевдонимов SQL Server. Синтаксис CREATE TYPE можно использовать для создания собственных определяемых пользователем типов данных SQL Server и определяемых пользователем типов.
**Создание таблиц, переменных или параметров при помощи определяемого пользователем типа **Начиная с версии SQL Server 2005, определяемый пользователем тип можно использовать в качестве определения столбца таблицы, переменной в пакете Transact-SQL или аргумента функции или хранимой процедуры Transact-SQL. Дополнительные сведения см. в разделе Работа с определяемыми пользователем типами данных CLR.
В этом разделе
Создание определяемого пользователем типа
Описывает способ создания определяемых пользователем типов.Регистрация определяемых пользователем типов в SQL Server
Описывает регистрацию и управления определяемыми пользователем типами в SQL Server.Работа с определяемыми пользователем типами в SQL Server
Описывает способ создания запросов при помощи определяемых пользователем типов.Доступ к определяемым пользователем типам в ADO.NET
Описывает способ работы с определяемыми пользователем типами при помощи поставщика данных .NET Framework для SQL Server в ADO.NET.