Tipos de dados CLR grandes definidos pelo usuário

No SQL Server 2005, os UDTs (tipos definidos pelo usuário) no CLR (Common Language Runtime) eram restritos a 8.000 bytes de tamanho. Essa restrição foi eliminada no SQL Server 2008. Os UDTs CLR agora são tratados de maneira semelhante aos tipos LOB (objeto grande). Ou seja, os UDTs inferiores ou iguais a 8.000 bytes têm o mesmo comportamento que no SQL Server 2005, mas são suportados UDTs maiores que informam seu tamanho como "ilimitado".

Para obter mais informações, consulte Tipos definidos pelo usuário CLR grandes (OLE DB) e Tipos de dados CLR grandes definidos pelo usuário (ODBC).

Casos de uso

Para o ODBC, o suporte a UDTs grandes inclui a capacidade de enviar valores UDT em partes como parâmetros de dados em execução. Isso é feito usando SQLPutData.

Para o OLE DB, o suporte a UDTs grandes inclui a capacidade de transmitir valores UDT para e do servidor usando a associação ISequentialStream.

Os UDTs inferiores ou iguais a 8.000 bytes se comportarão como no SQL Server 2005. Para o OLE DB, você ainda pode transmitir UDTs pequenos usando a associação ISequentialStream.

Às vezes, o código nativo terá de entender o conteúdo dos UDTs CLR, mas não terão de criar uma instância dos objetos gerenciados. Se esse for o caso, você poderá usar serialização personalizada para converter valores UDT no servidor em um formato bem conhecido para os clientes.

Para aplicativos com código de acesso a dados existente, você pode explorar o comportamento de UDTs CLR no cliente recuperando UDTs através de APIs nativas e criando instâncias deles com C++ CLI interop em aplicativos de modo misto.

Histórico de alterações

Conteúdo atualizado

Link atualizado para exemplo.