Types de données et comportement du chargement en masse XML (SQLXML 4.0)

Les types de données spécifiés dans le schéma de mappage (type XSD ou XDR et sql:datatype) sont ignorés en général, sauf dans les cas suivants :

Dans XSD :

  • Si le type est dateTime ou time, vous devez spécifier sql:datatype car le chargement en masse XML effectue une conversion de données avant d'envoyer les données à Microsoft SQL Server.

  • Lorsque vous effectuez un chargement en masse dans une colonne de type uniqueidentifier dans SQL Server et que la valeur XSD est un GUID qui inclut des accolades ({et}), vous devez spécifier sql:datatype="uniqueidentifier" pour supprimer les accolades avant l'insertion de la valeur dans la colonne. Si sql:datatype n'est pas spécifié, la valeur est envoyée avec les accolades et l'insertion échoue.

Pour plus d'informations sur sql:datatype, consultez Forçages de type de données et annotation sql:datatype (SQLXML 4.0).

Dans XDR :

  • Si dt:type est datetime, time, dateTime.tz ou time.tz, vous devez spécifier les types de données dt:type et sql:datatype car le chargement en masse XML effectue une conversion de données avant d'envoyer les données à SQL Server.

  • Si vos données XML sont de type uuid, sql:datatype doit être spécifié ; dt:type="uuid**"** est également requis, à moins que les données soient des données de chaîne. Si vous ne spécifiez pas dt:uuid, le chargement en masse XML accepte les chaînes avec accolades (et les supprime si nécessaire).

  • Si les données XML sont bin.base64 ou bin.hex, vous devez spécifier le type de données XML avec dt:type. Le chargement en masse XML charge ensuite les données dans SQL Server sous la forme d'une représentation hexadécimale des données.