SQL Server 2005 XML Explicit - Brauchen Sie Hilfe Formatierung

stimmen
8

Ich habe eine Tabelle mit einer Struktur wie folgt aus:

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

Um in eine andere gespeicherte Prozedur zu übergeben, muss ich die XML wie folgt aussehen:

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

Das Beste, was ich habe in der Lage gewesen, so weit zu tun, war es wie folgt erhalten:

<root clientID=10705/>

Ich bin mit dieser SQL-Anweisung:

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

Bisher habe ich in der Dokumentation sah der MSDN - Seite , aber ich habe nicht den gewünschten Ergebnissen kommen.


@KG,

Mit freundlichen gab mir diese Ausgabe tatsächlich:

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

Ich werde mit dem Stick FOR XML EXPLICITjetzt von Chris Leon.

Veröffentlicht am 05/08/2008 um 21:35
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
1

Versuchen

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR XML EXPLICIT
Beantwortet am 05/08/2008 um 21:51
quelle vom benutzer

stimmen
0
SELECT 1 als Tag,
       null als Elternteil,
       Account als 'clientID! 1 !! Element'
VON Location.LocationMDAccount
WHERE LocationID = 'long-guid-hier'
FOR XML EXPLICIT, root ( 'root')
Beantwortet am 31/10/2011 um 12:28
quelle vom benutzer

stimmen
0

Verwenden von SQL Server 2005 (oder vermutlich 2008) I für XML PATH finden viel leichter zu ermöglichen SQL zu halten als für XML Explizit (besonders, wenn die SQL ist länger).

In diesem Fall:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
Beantwortet am 17/08/2008 um 07:45
quelle vom benutzer

stimmen
0

Ich habe es mit:

select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit
Beantwortet am 05/08/2008 um 21:53
quelle vom benutzer

stimmen
0

Versuchen Sie dies, Chris:

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

SCHRECKLICH LEID! Ich gemischt, was Sie fragen. Ich ziehe das XML AUTO nur für eine einfache Wartung, aber ich glaube, entweder wirksam ist. Ich entschuldige mich für die Aufsicht ;-)

Beantwortet am 05/08/2008 um 21:53
quelle vom benutzer

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