SQL Server 2005 Per XML Esplicito, hanno Bisogno di aiuto formattazione
-
08-06-2019 - |
Domanda
Ho una tabella con una struttura simile alla seguente:
------------------------------
LocationID | AccountNumber
------------------------------
long-guid-here | 12345
long-guid-here | 54321
Per passare in un'altra stored procedure, ho bisogno di XML simile a questo:
<root>
<clientID>12345</clientID>
<clientID>54321</clientID>
</root>
Il meglio che ho potuto fare finora è stato sempre così:
<root clientID="10705"/>
Io sto usando questa istruzione SQL:
SELECT
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID'
FROM
Location.LocationMDAccount
WHERE
locationid = 'long-guid-here'
FOR XML EXPLICIT
Finora, ho guardato la documentazione la pagina di MSDN, ma non ho avuto modo di uscire con i risultati desiderati.
@KG,
Il vostro mi ha dato questa uscita, in realtà:
<root>
<Location.LocationMDAccount>
<clientId>10705</clientId>
</Location.LocationMDAccount>
</root>
Ho intenzione di attaccare con la FOR XML EXPLICIT
da Chris, Leon, per ora.
Soluzione
provare
SELECT
1 AS Tag,
0 AS Parent,
AccountNumber AS [Root!1!AccountNumber!element]
FROM
Location.LocationMDAccount
WHERE
LocationID = 'long-guid-here'
FOR XML EXPLICIT
Altri suggerimenti
Prova questo, Chris:
SELECT
AccountNumber as [clientId]
FROM
Location.Location root
WHERE
LocationId = 'long-guid-here'
FOR
XML AUTO, ELEMENTS
MI DISPIACE MOLTO!Ho mescolato ciò che mi chiedeva.Io preferisco l'XML AUTO solo per facilità di manutenzione, ma credo che uno di loro è efficace.Mi scuso per la svista ;-)
Utilizzo di SQL Server 2005 (o presumibilmente 2008) che ho trovato per XML PERCORSO per consentire una migliore e più semplice per mantenere SQL che per XML Esplicito (in particolare, una volta che l'SQL è più).
In questo caso:
SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
Io ce l'ho con:
select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit
SELECT 1 as tag, null as parent, AccountNumber as 'clientID!1!!element' FROM Location.LocationMDAccount WHERE locationid = 'long-guid-here' FOR XML EXPLICIT, root('root')