Большие определяемые пользователем типы данных CLR
В SQL Server 2005 определяемые пользователем типы данных (UDT) в среде CLR были ограничены размером в 8000 байт. Это ограничение было снято в SQL Server 2008 и более поздних версиях. Теперь определяемые пользователем типы данных CLR обрабатываются подобно типам больших объектов (LOB). То есть объекты определяемого пользователем типа размером не более 8000 байт ведут себя так же, как в SQL Server 2005, но такие же объекты большего размера поддерживаются и сообщают о своем размере как о неограниченном.
Дополнительные сведения см. в разделах Большие определяемые пользователем типы данных CLR (OLE DB) и Определяемые пользователем типы данных больших значений CLR (ODBC).
Способы применения
Для ODBC поддержка больших объектов определяемого пользователем типа включает в себя возможность отправить значения определяемого пользователем типа по частям как параметры с данными времени выполнения. Это осуществляется при помощи функции SQLPutData.
Для OLE DB поддержка больших определяемых пользователем типов включает в себя возможность передать потоком значения определяемого пользователем типа на сервер и обратно при помощи привязки ISequentialStream.
Определяемые пользователем типы размером меньше или равным 8 000 байт будут вести себя так же, как в SQL Server 2005. Для OLE DB по-прежнему можно передавать потоком малые, определяемые пользователем типы при помощи привязки ISequentialStream.
Иногда собственному коду будет необходимо понять содержимое определяемых пользователем типов CLR, но не придется создавать экземпляр управляющего объекта. В таком случае можно использовать пользовательскую сериализацию для преобразования на сервере значений определяемых пользователем типов в хорошо знакомый клиенту формат.
Для приложений, имеющих существующий код доступа к данным, можно использовать поведение определяемых пользователем типов CLR на клиенте путем получения определяемых пользователем типов через собственные API-интерфейсы и создания их экземпляров при помощи CLI-взаимодействия языка C++ в приложениях смешанного режима.