FOR XML AUTO и имя столбца с пробелом в SQL Server 2005 - PullRequest
0 голосов
/ 20 января 2011

Вот мой SQL

select 
   ID as [Emp ID],
   Name as [Employee name],
   Sal as [Salary] 
from Emp 
FOR XML AUTO, ELEMENTS, ROOT('customers')

Когда я выдаю этот SQL, в xml добавляются неизвестные данные с именем моего поля.

Я получил XML как

<customers>
   <Emp>
     <Emp_x0020_ID>1</Emp_x0020_ID>
     <Employee_x0020_name>bob</Employee_x0020_name>
     <Salary>2020</Salary>
   </Emp>
   <Emp>
     <Emp_x0020_ID>2</Emp_x0020_ID>
     <Employee_x0020_name>keith</Employee_x0020_name>
     <Salary>6500</Salary>
   </Emp>
   <Emp>
     <Emp_x0020_ID>3</Emp_x0020_ID>
     <Employee_x0020_name>markc</Employee_x0020_name>
     <Salary>5400</Salary>
   </Emp>
 </customers>

Он показывает <Emp_x0020_ID> вместо <Emp ID>, потому что я упоминаю псевдоним столбца с пробелом, как "Emp ID". как можно изменить мой SQL в результате пространство не будет игнорироваться Я имею в виду мой XML будет выглядеть как

<customers>
  <Emp>
    <Emp ID>1</Emp ID>
    <Employee name>bob</Employee name>
    <Salary>2020</Salary>
   </Emp>
</customers>

1 Ответ

2 голосов
/ 20 января 2011

Это недопустимый XML, поэтому даже не думайте об этом.

Это нормально

declare @xml xml
set @xml = '<a><bc>1</bc></a>'

Это не удалось

declare @xml xml
set @xml = '<a><b c>1</b c></a>'

Недопустимые имена элементов из нескольких слов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...