SQL Server 2005 Pour XML EXPLICIT - Besoin d'aide mise en forme

voix
8

J'ai une table avec une structure comme ce qui suit:

------------------------------
LocationID     | AccountNumber
------------------------------
long-guid-here | 12345
long-guid-here | 54321

Pour passer dans une autre procédure stockée, j'ai besoin du XML pour ressembler à ceci:

<root> 
    <clientID>12345</clientID>
    <clientID>54321</clientID>
</root>

Le mieux que j'ai pu faire jusqu'à présent a été 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, je l' ai regardé la documentation sur la page MSDN , mais je suis venu pas avec les résultats souhaités.


@KG,

Bien à vous m'a donné cette sortie en fait:

<root>
  <Location.LocationMDAccount>
    <clientId>10705</clientId>
  </Location.LocationMDAccount>
</root>

Je vais rester avec le FOR XML EXPLICITChris Leon pour l' instant.

Créé 05/08/2008 à 21:35
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
1

essayer

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR XML EXPLICIT
Créé 05/08/2008 à 21:51
source utilisateur

voix
0
SELECT 1 étiquette,
       null comme parent,
       AccountNumber comme 'clientID! 1 élément !!'
DE Location.LocationMDAccount
OÙ LocationID = 'long-guid ici'
FOR XML EXPLICIT, racine ( 'root')
Créé 31/10/2011 à 12:28
source utilisateur

voix
0

Utilisation de SQL Server 2005 (ou probablement 2008) Je trouve PATH XML pour permettre beaucoup plus facile de maintenir SQL que pour XML explicite (en particulier une fois que le SQL est plus).

Dans ce cas:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
Créé 17/08/2008 à 07:45
source utilisateur

voix
0

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
Créé 05/08/2008 à 21:53
source utilisateur

voix
0

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 vous demandez. Je préfère le AUTO XML juste pour la facilité de maintenance, mais je crois que l'un est efficace. Je présente mes excuses pour la surveillance ;-)

Créé 05/08/2008 à 21:53
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more