essayez
SELECT
1 AS Tag,
0 AS Parent,
AccountNumber AS [Root!1!AccountNumber!element]
FROM
Location.LocationMDAccount
WHERE
LocationID = 'long-guid-here'
FOR XML EXPLICIT
J'ai une table avec une structure comme celle-ci :
------------------------------
LocationID | AccountNumber
------------------------------
long-guid-here | 12345
long-guid-here | 54321
Pour passer à une autre procédure stockée, j'ai besoin que le XML ressemble à ceci :
<root>
<clientID>12345</clientID>
<clientID>54321</clientID>
</root>
Le mieux que j'ai pu faire jusqu'à présent a été de l'obtenir comme ceci :
<root clientID='10705'/>
J'utilise cette instruction SQL :
SELECT
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID'
FROM
Location.LocationMDAccount
WHERE
locationid = 'long-guid-here'
FOR XML EXPLICIT
Jusqu'à présent, j'ai consulté la documentation sur la page MSDN, mais je n'ai pas obtenu les résultats escomptés.
@KG,
Votre m'a donné cette sortie en fait :
<root>
<Location.LocationMDAccount>
<clientId>10705</clientId>
</Location.LocationMDAccount>
</root>
Je vais m'en tenir au FOR XML EXPLICIT
de Chris Leon pour l'instant.
essayez
SELECT
1 AS Tag,
0 AS Parent,
AccountNumber AS [Root!1!AccountNumber!element]
FROM
Location.LocationMDAccount
WHERE
LocationID = 'long-guid-here'
FOR XML EXPLICIT
Essayez ceci, Chris :
SELECT
AccountNumber as [clientId]
FROM
Location.Location root
WHERE
LocationId = 'long-guid-here'
FOR
XML AUTO, ELEMENTS
TERRIBLEMENT DÉSOLÉ ! J'ai mélangé ce que tu demandais. Je préfère le XML AUTO juste pour la facilité de maintenance, mais je pense que l'un ou l'autre est efficace. Toutes mes excuses pour l'oubli ;-)
Je l'ai eu avec :
select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit