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
精彩评论