SQL Server 2005 for XML Explicit - Trenger du hjelp formatering

stemmer
8

Jeg har en tabell med en struktur som følgende:

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

Å passere inn i en annen lagret prosedyre, trenger jeg XML å se slik ut:

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

Den beste jeg har vært i stand til å gjøre så langt var å få det slik:

<root clientID=10705/>

Jeg bruker denne SQL-setningen:

SELECT
    1 as tag,
    null as parent,
    AccountNumber as 'root!1!clientID'
FROM
    Location.LocationMDAccount
WHERE
    locationid = 'long-guid-here'
FOR XML EXPLICIT

Så langt har jeg sett på dokumentasjonen på MSDN side , men jeg har ikke kommet ut med de ønskede resultater.


@KG,

Yours ga meg denne produksjonen faktisk:

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

Jeg kommer til å feste med FOR XML EXPLICITfra Chris Leon for nå.

Publisert på 05/08/2008 klokken 20:35
kilden bruker
På andre språk...                            


5 svar

stemmer
1

prøve

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR XML EXPLICIT
Svarte 05/08/2008 kl. 20:51
kilden bruker

stemmer
0
SELECT 1 som tag,
       null som forelder,
       Kontonummer som 'kunde-! 1 !! element'
Fra Location.LocationMDAccount
HVOR locationid = 'lang guid-her'
FOR XML eksplisitte, root ( 'root')
Svarte 31/10/2011 kl. 11:28
kilden bruker

stemmer
0

Ved hjelp av SQL Server 2005 (eller antagelig 2008) Jeg synes for XML PATH å tillate mye enklere å vedlikeholde SQL enn for XML eksplisitt (spesielt når SQL er lengre).

I dette tilfellet:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
Svarte 17/08/2008 kl. 06:45
kilden bruker

stemmer
0

Jeg fikk den med:

select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit
Svarte 05/08/2008 kl. 20:53
kilden bruker

stemmer
0

Prøv dette, Chris:

SELECT
    AccountNumber as [clientId]
FROM
    Location.Location root
WHERE
    LocationId = 'long-guid-here'
FOR
    XML AUTO, ELEMENTS

FORFERDELIG LEI MEG! Jeg blandet opp det du ber om. Jeg foretrekker den XML AUTO bare for enkel vedlikehold, men jeg tror enten en er effektiv. Min unnskyldninger for tilsyn ;-)

Svarte 05/08/2008 kl. 20:53
kilden bruker

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