Share via


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

S’applique à :SQL ServerAzure SQL Database

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

Dans XSD :

  • Si le type est dateTime ou time, vous devez spécifier le type sql:data, car le chargement en bloc XML effectue la conversion des données avant d’envoyer les données à Microsoft SQL Server.

  • Lorsque vous chargez en bloc 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 Data Type Coercions et sql:datatype Annotation (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 xml Bulk Load effectue la 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, sauf si les données sont des données de chaîne. Si vous ne spécifiez pas dt:uuid, le chargement en bloc 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 bloc XML charge ensuite les données dans SQL Server en tant que représentation hexadécimale des données.