数据类型和 XML 大容量加载行为 (SQLXML 4.0)
一般忽略在映射架构中指定的数据类型(XSD 或 XDR 类型以及 sql:datatype),但是以下情况除外:
在 XSD 中:
如果类型为 dateTime 或 time,必须指定 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:type 为 datetime、time、dateTime.tz 或 time.tz,必须同时指定 dt:type 和 sql:datatype 数据类型,因为 XML 大容量加载在将数据发送到 SQL Server 前会执行数据转换。
如果 XML 数据属于 uuid 类型,则必须指定 sql:datatype;如果数据不是字符串数据,还需要 dt:type="uuid**"**。如果未指定 dt:uuid,XML 大容量加载将接受包含大括号的字符串(并根据需要删除大括号)。
如果 XML 数据为 bin.base64 或 bin.hex,必须使用 dt:type 指定 XML 数据类型。XML 大容量加载然后将数据以十六进制形式加载到 SQL Server。