我正在尝试从SQL Server生成XML,并且需要我选择的字段而不是属性。
我当前的SQL是: -
然后从帐户中选择AccountNumber FOR XML AUTO
生成XML,如: -
<Account AccountNumber="12345" />
我希望它显示为: -
<AccountNumber>12345</AccountNumber>
有人能指出我正确的方向吗?
答案 0 :(得分:3)
您还应该查看SQL Server 2008及更新版本中可用的FOR XML PATH(...),ROOT(....)
构造:MSDN docs
这将允许你
所以在你的情况下,你可以,例如创建类似的东西:
SELECT
AccountNumber, AcctID AS '@AcctID',
AccountHolder
FROM
dbo.Accounts
FOR XML PATH('Account'), ROOT('AllAccounts')
你会得到类似的结果:
<AllAccounts>
<Account AcctID="42">
<AccountNumber>12345</AccountNumber>
<AccountHolder>John Doe</AccountHolder>
</Account>
<Account AcctID="4711">
<AccountNumber>54321</AccountNumber>
<AccountHolder>Jane Willis-Doe</AccountHolder>
</Account>
..... (possibly more <Account> elements) ......
</AllAccounts>
使用FOR XML PATH
方法,您可以非常轻松地微调生成的XML应该是什么样的。
答案 1 :(得分:2)
将ELEMENTS添加到最后:
SELECT AccountNumber FROM Account FOR XML AUTO, ELEMENTS