Типы данных и массовая загрузка XML (SQLXML 4.0)

Типы данных, заданные в схеме сопоставления (тип XSD, XDR и sql:datatype), как правило, пропускаются, за исключением следующих случаев.

В XSD.

  • Если данные имеют тип dateTime или time, необходимо задать sql:datatype, поскольку в ходе массовой загрузки XML выполняется преобразование данных перед их отправкой в Microsoft SQL Server.

  • Если происходит массовая загрузка в столбец с типом uniqueidentifier в SQL Server, а значение 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, необходимо указать тип данных XML с атрибутом dt:type. В таком случае при массовой загрузке XML данные загружаются в SQL Server в шестнадцатеричном представлении.