Leer fichero xml

19/11/2009 - 12:46 por op.th | Informe spam
Buenos días grupo, tengo un problemilla, más bien una duda, necesito
importar en sqlserver express un fichero xml como el descrito abajo. Más
bien lo que necesito es hacer una select para luego hacer un insert o un
update de los datos. Cual es la forma más correcta? Como haría una
select de un fichero xml de este tipo? Desde .net todo perfecto, pero
desde sqlserver no tengo ni idea y debe ser desde consola :(. Alguién me
puede ayudar?

<propiedades>
<registro>
<no_>1000001</no_>
<name>LOPEZ ALVAREZ</name>
</registro>
<registro>
<no_>1000002</no_>
<name>LOPEZ LOPEZ</name>
</registro>
</propiedades>

Muchas gracias anticipadas.

Un saludo
 

Leer las respuestas

#1 Carlos Sacristan
19/11/2009 - 13:06 | Informe spam
En los BOL vienen muchos ejemplos de tratamiento de xml.

Una posibilidad de lo que indicas podría ser:

declare @a xml

set @a = '<propiedades>
<registro>
<no_>1000001</no_>
<name>LOPEZ ALVAREZ</name>
</registro>
<registro>
<no_>1000002</no_>
<name>LOPEZ LOPEZ</name>
</registro>
</propiedades>'

select i2.num.query('./text()') as no_
, i3.nombre.query('./text()') as name
from @a.nodes('propiedades/registro') i1(registro)
CROSS APPLY i1.registro.nodes('./no_') as i2(num)
CROSS APPLY i1.registro.nodes('./name') as i3(nombre)

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"op.th" <op.th.esNOSPAMgmail.com> wrote in message
news:
Buenos días grupo, tengo un problemilla, más bien una duda, necesito
importar en sqlserver express un fichero xml como el descrito abajo. Más
bien lo que necesito es hacer una select para luego hacer un insert o un
update de los datos. Cual es la forma más correcta? Como haría una select
de un fichero xml de este tipo? Desde .net todo perfecto, pero desde
sqlserver no tengo ni idea y debe ser desde consola :(. Alguién me puede
ayudar?

<propiedades>
<registro>
<no_>1000001</no_>
<name>LOPEZ ALVAREZ</name>
</registro>
<registro>
<no_>1000002</no_>
<name>LOPEZ LOPEZ</name>
</registro>
</propiedades>

Muchas gracias anticipadas.

Un saludo

Preguntas similares