txt tabla sentencia queryout para masiva importar exportar ejemplos datos carga sql xml sql-server-2005 formatting for-xml

tabla - SQL Server 2005 para XML explícito: necesita ayuda para formatear



queryout sql server (5)

Tengo una tabla con una estructura como la siguiente:

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

Para pasar a otro procedimiento almacenado, necesito que el XML se vea así:

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

Lo mejor que he podido hacer hasta ahora fue conseguirlo así:

<root clientID="10705"/>

Estoy usando esta declaración SQL:

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

Hasta ahora, he visto la documentación en la página de MSDN , pero no he obtenido los resultados deseados.

@KG,

El tuyo me dio esta salida en realidad:

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

Voy a seguir con FOR XML EXPLICIT de Chris Leon por ahora.


Prueba esto, Chris:

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

¡LO SIENTO MUCHO! Mezclé lo que estabas pidiendo. Prefiero el XML AUTO solo por la facilidad de mantenimiento, pero creo que cualquiera de los dos es efectivo. Mis disculpas por el descuido ;-)


Utilizando SQL Server 2005 (o presumiblemente 2008) encuentro que XML PATH permite mucho más fácil mantener SQL que XML explícito (particularmente una vez que el SQL es más largo).

En este caso:

SELECT AccountNumber as "clientID" FROM Location.LocationMDAccount WHERE locationid = ''long-guid-here'' FOR XML PATH (''''), Root (''root'');


Lo tengo 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'')


tratar

SELECT 1 AS Tag, 0 AS Parent, AccountNumber AS [Root!1!AccountNumber!element] FROM Location.LocationMDAccount WHERE LocationID = ''long-guid-here'' FOR XML EXPLICIT