Freigeben über


FOR XML-Unterstützung für Zeichenfolgen-Datentypen

In SQL Server 2000 werden Leerzeichen genau so zurückgegeben, wie sie sind. In SQL Server 2005 werden die durch FOR XML-Leerzeichen generierten XML-Daten in Entitäten geändert.

Im folgenden Beispiel wird eine Beispieltabelle T erstellt und als Beispieldaten Zeilenvorschub-, Wagenrücklauf- und Tabstoppzeichen eingefügt. Die SELECT-Anweisung ruft die Daten aus der Tabelle ab.

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

Dies ist das Ergebnis:

  <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" />

Beachten Sie hinsichtlich der vorherigen Abfrage Folgendes:

  • Das Wagenrücklaufzeichen in der ersten Zeile wird in die Entität &#xD geändert.
  • Das Tabstoppzeichen in der zweiten Zeile wird in die Entität &#x09 geändert.
  • Das Zeilenvorschubzeichen in der dritten Zeile wird in die Entität &#xA geändert.

In SQL Server 2000 würden Sie folgendes Ergebnis erhalten, da die Leerzeichen nicht in Entitäten geändert werden:

<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"/>
    

Siehe auch

Verweis

FOR XML-Unterstützung für verschiedene SQL Server-Datentypen

Hilfe und Informationen

Informationsquellen für SQL Server 2005