SQL Server 2005 pro XML Explicit - Potřeba formátování nápovědy

hlasů
8

Mám tabulku se strukturou, jako je následující:

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

Přenést do jiného uložené procedury, musím XML vypadat takto:

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

Nejlepší, co jsem byl schopen udělat doposud bylo dostat to takhle:

<root clientID=10705/>

Já používám tento příkaz SQL:

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

Zatím jsem se podíval na dokumentaci na stránce MSDN , ale já jsem to vyjít s požadovaným výsledkům.


@KG,

Yours mi dal tento výstup ve skutečnosti:

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

Budu držet s FOR XML EXPLICITChrise Leon nyní.

Položena 05/08/2008 v 21:35
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
1

Snaž se

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR XML EXPLICIT
Odpovězeno 05/08/2008 v 21:51
zdroj uživatelem

hlasů
0
SELECT 1 jako značku,
       null jako rodič,
       AccountNumber jako 'ClientID! 1 !! prvek'
Z Location.LocationMDAccount
KDE LocationID = ‚dlouholetou GUID zde‘
FOR XML EXPLICITNÍ, kořen ( 'kořen')
Odpovězeno 31/10/2011 v 12:28
zdroj uživatelem

hlasů
0

SQL Server 2005 (nebo 2008) podle všeho najdu pro XML PATH umožňuje mnohem snazší udržet SQL než XML explicitní (zvláště poté, co SQL je delší).

V tomto případě:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
Odpovězeno 17/08/2008 v 07:45
zdroj uživatelem

hlasů
0

Dostal jsem ji:

select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit
Odpovězeno 05/08/2008 v 21:53
zdroj uživatelem

hlasů
0

Zkuste to, Chris:

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

HROZNĚ SE OMLOUVÁM! smíšené I to, co jste žádali. Dávám přednost XML AUTO jen pro snadnou údržbu, ale věřím, že jeden z nich je efektivní. Omlouvám se za dohled ;-)

Odpovězeno 05/08/2008 v 21:53
zdroj uživatelem

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