Udostępnij przez


FOR XML Support for String Data Types

W SQL Server 2000, znaki odstępu w danych zwróconych dokładnie tak samo, jak są one. Zaczyna się od SQL Server 2005, entitized jest generowany przez znaki odstępu XML dla danych XML.

Poniższy przykład tworzy przykładową tabela T i wstawia dane przykładowe, zawierający wysuwu wiersza, powrotu karetki i znakami tabulacji.Instrukcja SELECT pobiera dane z tabela.

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

Oto wynik:

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

Pierwszy przycisk jest przyciskiem domyślnym.

  • Powrót karetki w pierwszym wierszu jest entitized jako &#xD.

  • Znak tabulacji w drugim wierszu jest entitized jako &# x 09.

  • LF znaków w trzecim wierszu jest entitized jako &#xA.

W programie SQL Server 2000 czy jest wyświetlany następujący wynik, ponieważ spacje bieli nie są entitized:

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