大型 CLR 用户定义类型

在 SQL Server 2005 中,公共语言运行时 (CLR) 中的用户定义类型 (UDT) 已限制为最大 8,000 字节。这一限制在 SQL Server 2008 中仍保留。CLR UDT 现在以针对大型对象 (LOB) 类型的类似方式处置。也就是说,小于或等于 8,000 字节的 UDT 在行为上与 SQL Server 2005 中相同,但支持更大的 UDT 并且将其大小报告为“无限制”。

有关详细信息,请参阅大型 CLR 用户定义类型 (OLE DB)大型 CLR 用户定义类型 (ODBC)

用例

对于 ODBC,对大型 UDT 的支持包括能够分块将 UDT 值作为执行时数据参数发送。这是通过使用 SQLPutData 完成的。

对于 OLE DB,对于大型 UDT 的支持包括能够通过使用 ISequentialStream 绑定在服务器之间传送 UDT 值。

小于或等于 8,000 字节的 UDT 在行为上与 SQL Server 2005 中相同。对于 OLE DB,您仍然可以通过使用 ISequentialStream 绑定来流式传送小型 UDT。

有时候,本机代码将必须理解 CLR UDT 的内容,但将不必实例化托管对象。在此情况下,您可以使用自定义序列化将服务器上的 UDT 值转换为客户端的已知格式。

对于具有现有数据访问代码的应用程序,您可以通过在本机 API 中检索 UDT 并通过在混合模式应用程序中使用 C++ CLI interop 实例化它们,在客户端上利用 CLR UDT 行为。