Yardıma ihtiyacınız biçimlendirme - XML ​​Açık için SQL Server 2005

oy
8

Ben aşağıdaki gibi bir yapıya sahip bir tablo var:

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

Başka saklı yordam geçmek için, bu gibi görünmek için XML gerekir:

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

En iyi ben şimdiye kadar bu gibi başlamıştı yapmak mümkün oldum:

<root clientID=10705/>

Bu SQL deyimi kullanıyorum:

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

Şimdiye kadar üzerinde belgelerine baktım MSDN sayfasında , ancak istenilen sonuçları ile dışarı çıkmıyor ettik.


@KİLOGRAM,

Sevgiler aslında bana bu çıktıyı verdi:

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

Ben sopa ile gidiyorum FOR XML EXPLICITşimdilik Chris Leon.

Oluştur 05/08/2008 saat 21:35
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
1

Deneyin

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR XML EXPLICIT
Cevap 05/08/2008 saat 21:51
kaynak kullanıcı

oy
0
etiketi olarak 1 SEÇ,
       ebeveyn olarak boş,
       olarak AccountNumber 'clientid! 1 !! eleman'
Location.LocationMDAccount DAN
NEREDE LocationID = 'uzun guid-burada'
XML EXPLICIT, root İÇİN ( 'root')
Cevap 31/10/2011 saat 12:28
kaynak kullanıcı

oy
0

SQL Server 2005 (veya muhtemelen 2008) Ben Açık XML (SQL uzundur özellikle kez) için olandan SQL korumak için çok daha kolay sağlamak için XML PATH bulmak kullanma.

Bu durumda:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
Cevap 17/08/2008 saat 07:45
kaynak kullanıcı

oy
0

Bunu kurtardı:

select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit
Cevap 05/08/2008 saat 21:53
kaynak kullanıcı

oy
0

Chris bu deneyin:

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

ÇOK ÖZÜR DİLERİM! Sana soran ne kadar karışık. Sadece bakımı kolaylığı için XML OTOMATİK tercih ederim ama ikisinden biri etkili olduğuna inanıyoruz. gözetimi için özür dilerim ;-)

Cevap 05/08/2008 saat 21:53
kaynak kullanıcı

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