Datentypen und XML-Massenladenverhalten (SQLXML 4.0)

Gilt für:SQL ServerAzure SQL-Datenbank

Die im Zuordnungsschema angegebenen Datentypen (XSD oder XDR-Typ und sql:datatype) werden im Allgemeinen ignoriert, außer in den folgenden Fällen:

Bei XSD:

  • Wenn der Typ dateTime oder time ist, müssen Sie sql:datatype angeben, da das XML-Massenladen vor dem Senden der Daten an Microsoft SQL Server.

  • Wenn Sie massenweise in eine Spalte vom Typ uniqueidentifier in SQL Server laden und der XSD-Wert eine GUID mit geschweiften Klammern ({ und }) ist, müssen Sie sql:datatype="uniqueidentifier" angeben, um die geschweiften Klammern zu entfernen, bevor der Wert in die Spalte eingefügt wird. Wenn sql:datatype nicht angegeben ist, wird der Wert mit den geschweiften Klammern gesendet, und die Einfügung schlägt fehl.

Weitere Informationen zu sql:datatype finden Sie unter Datentypkoercions und sql:datatype Annotation (SQLXML 4.0).

Bei XDR:

  • Wenn dt:typedatetime, time, dateTime.tz oder time.tz ist, müssen Sie sowohl die Datentypen dt:type als auch sql:datatype angeben, da das XML-Massenladen datenkonvertiert, bevor die Daten an SQL Server gesendet werden.

  • Wenn Ihre XML-Daten vom Typ uuid sind, muss sql:datatype angegeben werden. dt:type="uuid" ist ebenfalls erforderlich, es sei denn, die Daten sind Zeichenfolgendaten. Wenn Sie dt:uuid nicht angeben, akzeptiert das XML-Massenladen Zeichenfolgen mit geschweiften Klammern (und entfernt sie bei Bedarf).

  • Wenn die XML-Daten bin.base64 oder bin.hex sind, müssen Sie den XML-Datentyp mit dt:type angeben. Xml-Massenladen lädt dann die Daten als hexadezimale Darstellung der Daten in SQL Server.