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

适用于:SQL Server Azure SQL 数据库

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

在 XSD 中:

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

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

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

在 XDR 中:

  • 如果 dt:type日期时间时间dateTime.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 中。