2011-01-20 1 views
0

Voici mon SQLPOUR AUTO Nom XML et colonne avec problème d'espace dans SQL Server 2005

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

Lorsque je lance ce SQL alors des données inconnue est ajoutée en XML avec mon nom de domaine.

J'ai obtenu le xml comme

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

Il montre <Emp_x0020_ID> au lieu de ce <Emp ID> parce que je mentionne alias de colonne avec l'espace comme "ID Emp". comment pourrait modifier mon SQL comme un espace de résultat ne sera pas ignorer que je veux dire mon xml ressemblerait

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

s'il vous plaît aidez-moi ...... urgence.

Répondre

2

Ce n'est pas du XML valide, alors n'y pensez même pas.

Ceci est OK

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

Ce ne

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

noms d'éléments de plusieurs mots ne sont pas valides

+0

+1 exactement - il suffit de ne pas utiliser des espaces dans les balises XML - alors ce problème ne se produit jamais :-) –