数据类型和 XML 大容量加载行为 (SQLXML 4.0)

适用于:SQL ServerAzure SQL 数据库

通常忽略映射架构中指定的数据类型 (XSD 或 XDR 类型和 sql:datatype) ,但以下情况除外:

在 XSD 中:

  • 如果类型为 dateTimetime,则必须指定 sql:datatype,因为 XML 大容量加载在将数据发送到 Microsoft SQL Server之前执行数据转换。

  • 当您在 SQL Server 中大容量加载到 uniqueidentifier 类型的列中,并且 XSD 值是包含大括号的 GUID ({ 和 }) ,您必须指定 sql:datatype=“uniqueidentifier”以删除大括号,然后再将值插入到列中。 如果未指定 sql:datatype ,则会使用大括号发送该值,并且插入失败。

有关 sql:datatype 的详细信息,请参阅 数据类型强制和 sql:datatype 注释 (SQLXML 4.0)

在 XDR 中:

  • 如果 dt:typedatetimetimedateTime.tztime.tz,则必须同时指定 dt:typesql:datatype 数据类型,因为 XML 大容量加载会在将数据发送到SQL Server之前执行数据转换。

  • 如果 XML 数据的类型为 uuid,则必须指定 sql:datatype ; dt:type=“uuid” 也是必需的,除非数据是字符串数据。 如果未指定 dt:uuid,XML 大容量加载将接受带有大括号的字符串 (,并在需要时将其删除) 。

  • 如果 XML 数据为 bin.base64bin.hex,则必须使用 dt:type 指定 XML 数据类型。 然后,XML 大容量加载将数据加载到SQL Server作为数据的十六进制表示形式。