开发者

FOR XML AUTO and column name with space issue in SQL Server 2005

Here is my SQL

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

When I issue this SQL then unknown data is added in xml with my field name.

I got the xml like

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

It shows <Emp_x0020_ID> instead of this <Emp ID> because I mention column ali开发者_运维问答as with space like "Emp ID". how could modify my SQL as a result space will not be ignore I mean my xml would look like

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


This is not valid XML, so don't even think about it.

This is OK

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

This fails

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

Multi-word element names are invalid

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜