Share via


Tipos definidos por el usuario de CLR grandes

En SQL Server 2005, los tipos definidos por el usuario (UDT) en Common Language Runtime (CLR) estaban restringidos a un tamaño de 8.000 bytes. Esta restricción se ha solucionado en SQL Server 2008. Los UDT CLR se tratan ahora de una manera similar a los tipos de objeto grandes (LOB). Es decir, los UDT con un tamaño menor o igual que 8.000 bytes se comportan de la misma manera que en SQL Server 2005, pero se admiten UDT de mayor tamaño y notifican su tamaño como "ilimitado".

Para obtener más información, vea Tipos definidos por el usuario de CLR grandes (OLE DB) y Tipos CLR grandes definidos por el usuario (ODBC).

Casos de uso

Para ODBC, la compatibilidad con UDT grandes incluye la capacidad de enviar los valores de UDT en partes como parámetros de datos en ejecución. Esto se hace usando SQLPutData.

Para OLE DB, la compatibilidad con UDT grandes incluye la capacidad de transmitir en secuencias los valores de UDT a y desde el servidor utilizando el enlace ISequentialStream.

Los UDT con un tamaño menor o igual que 8.000 se comportarán como lo hacían en SQL Server 2005. Para OLE DB, puede transmitir en secuencias todavía los UDT pequeños usando el enlace ISequentialStream.

A veces el código nativo tendrá que entender el contenido de los UDT CLR, pero no tendrá que crear instancias de los objetos administrados. Si éste es el caso, puede utilizar la serialización personalizada para convertir los valores de UDT en el servidor en un formato bien conocido para los clientes.

Para las aplicaciones que tienen código de acceso a datos existente, puede aprovechar el comportamiento de los UDT de CLR en el cliente recuperando los UDT a través de API nativas y creando instancias de ellos utilizando la interoperabilidad de CLI de C++ en aplicaciones de modo mixto.

Historial de cambios

Contenido actualizado

Se ha actualizado el vínculo al ejemplo.