Tipi di dati e comportamento del caricamento bulk XML (SQLXML 4.0)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure

I tipi di dati specificati nello schema di mapping (tipo XSD o XDR e sql:datatype) vengono in genere ignorati, ad eccezione dei casi seguenti:

In XSD:

  • Se il tipo è dateTime o time, è necessario specificare sql:datatype perché il caricamento bulk XML esegue la conversione dei dati prima di inviare i dati a Microsoft SQL Server .

  • Quando si esegue il caricamento bulk in una colonna di tipo uniqueidentifier in e il valore XSD è un GUID che include parentesi graffe ({ e }), è necessario specificare SQL Server sql:datatype="uniqueidentifier" per rimuovere le parentesi graffe prima che il valore venga inserito nella colonna. Se sql:datatype non viene specificato, il valore viene inviato con le parentesi graffe e l'inserimento non riesce.

Per altre informazioni su sql:datatype, vedere Coercizioni del tipo di dati e l'annotazione sql:datatype (SQLXML 4.0).

In XDR:

  • Se dt:type è datetime, time, dateTime.tz o time.tz, è necessario specificare entrambi i tipi di dati dt:type e sql:datatype perché il caricamento bulk XML esegue la conversione dei dati prima di inviare i dati a SQL Server .

  • Se i dati XML sono di tipo uuid, è necessario specificare sql:datatype. È necessario anche dt:type="uuid", a meno che i dati non siano dati stringa. Se non si specifica dt:uuid, il caricamento bulk XML accetta stringhe con parentesi graffe e le rimuove se necessario.

  • Se i dati XML sono bin.base64 o bin.hex, è necessario specificare il tipo di dati XML con dt:type. Il caricamento bulk XML carica quindi i dati in SQL Server come rappresentazione esadecimale dei dati.