FOR XML-Unterstützung für Zeichenfolgen-Datentypen
In SQL Server 2000 wurden Leerzeichen in Daten genau so zurückgegeben, wie sie sind. Ab SQL Server 2005 werden für das XML, das von FOR XML-Leerzeichen in den Daten generiert wird, Entitäten erstellt.
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 
 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" />
Beachten Sie hinsichtlich der vorherigen Abfrage Folgendes:
Das Wagenrücklaufzeichen in der ersten Zeile wird in die Entität 
 geändert.
Das Tabstoppzeichen in der zweiten Zeile wird in die Entität 	 geändert.
Das Zeilenvorschubzeichen in der dritten Zeile wird in die Entität 
 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"/>