Condividi tramite


Supporto di FOR XML per i tipi di dati stringa

In SQL Server 2000, gli spazi vuoti nei dati vengono restituiti così come sono. In SQL Server 2005, il codice XML generato dagli spazi vuoti FOR XML nei dati viene sostituito con entità.

Nell'esempio seguente viene creata la tabella T e vengono inseriti dati di esempio che includono i caratteri di avanzamento riga, ritorno a capo e tabulazione. L'istruzione SELECT recupera i dati dalla tabella.

CREATE TABLE T
(
  c1 int identity primary key,
  c2 varchar(100)
)
go
 
insert T (c2) values ('Special character 0xD for carriage return ' + convert(varchar(10), 0xD) + ' after carriage return')
insert T (c2) values ('Special character 0x9 for tab ' + convert(varchar(10), 0x9) + ' after tab' )
insert T (c2) values ('Special character 0xA for line feed ' + convert(varchar(10), 0xA) + ' after line feed')
go
SELECT * 
FROM T
FOR XML AUTO
go

Risultato:

  <T c1="1" c2="Special character 0xD for carriage return &#xD; after carriage return" />
  <T c1="2" c2="Special character 0x9 for tab &#x09; after tab" />
  <T c1="3" c2="Special character 0xA for line feed &#xA; after line feed" />

Dalla query precedente si noti quanto segue:

  • Il carattere di ritorno a capo nella prima riga viene sostituito con l'entità &#xD.
  • Il carattere di tabulazione nella seconda riga viene sostituito con l'entità &#x09.
  • Il carattere di avanzamento riga nella terza riga viene sostituito con l'entità &#xA.

In SQL Server 2000 gli spazi vuoti non vengono sostituiti con entità, si riceve dunque il risultato seguente:

<T c1="1" c2="Special character 0xD for carriage return  after carriage return"/>
<T c1="2" c2="Special character 0x9 for tab     after tab"/>
<T c1="3" c2="Special character 0xA for line feed 
 after line feed"/>
    

Vedere anche

Riferimento

Supporto di FOR XML per vari tipi di dati di SQL Server

Guida in linea e informazioni

Assistenza su SQL Server 2005