2016-11-10 3 views
1
Table Structure 

ID Name Dept Salary 
1  John IT  1000 
2  Jamie HR  2000 
3  Ron  FN  3000 

XML needed as follows 

<Data> 
    <EMP Id=1> 
     <Name>John</Name> 
     <Dept>IT</Dept> 
     <Salary>1000</Salary> 
    </Emp> 
    <EMP Id=2> 
     <Name>Jamie</Name> 
     <Dept>HR</Dept> 
     <Salary>2000</Salary> 
    </Emp> 
    <EMP Id=3> 
     <Name>Ron</Name> 
     <Dept>FN</Dept> 
     <Salary>3000</Salary> 
    </Emp> 
</Data> 

Я использую следующий DB запрос для построения XML из результирующего -результатов SQL установлен в XML (с атрибутом в родительских тегах)

SELECT * FROM <DBName> FOR XML PATH('EMP'), ROOT ('DATA') 

Не знаю, как получить выше желаемый XML т.е. с атрибутом «идентификатор», как упоминалось выше

+0

Решается ли этот вопрос? Вам нужна дополнительная помощь? Пожалуйста, дайте мне один намек: если этот вопрос будет решен, было бы очень любезно с вами, отметьте приемочную проверку ниже счетчика голосов (лучшего) ответа. Это будет 1) отметить эту проблему как решение 2) облегчить для последователей, чтобы найти лучшее решение 3) платить очки для ответчика и 4) платить очки вам. Как только вы пересечете границу с 15 пунктами, вы - дополнительно - попросите проголосовать за взносы. Это SO-способ сказать спасибо. Счастливое кодирование! – Shnugo

ответ

0

Попробуйте как этот

SELECT ID AS [@Id] 
     ,Name 
     ,Dept 
     ,Salary 
FROM YourTable 
FOR XML PATH('EMP'), ROOT ('Data') 

И будьте осторожны с чувствительностью к регистру. В XML DATA is не равно до Data

+0

Я не хочу жестко указывать имена тегов. это должно стать динамичным. Таким образом, я столкнулся с проблемой. –

+0

1) Вы должны были упомянуть об этом. 2) Нет никаких шансов **, чтобы назвать псевдонимы динамически, хотя вы можете обманывать динамически созданные заявления с помощью 'EXEC'. 3) Как должно знать утверждение, какие столбцы должны быть атрибутами, а какие нет? – Shnugo

+0

Got is, теперь он работает .. SELECT ID AS [@ID], * FROM FOR XML PATH ('EMP'), ROOT ('DATA') –

Смежные вопросы