Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2012, 13:05
javiershj
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 16 años
Puntos: 1
Exclamación Rellenar tabla a partir de xml (SQL Server 2005)

Hola!

Tengo la siguiente tabla:


CREATE TABLE TAGS
(
id INT IDENTITY,
Id_tag nvarchar(20),
Cat_Tecnica_Uv INT ,
)

Y el siguiente formato de xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<Saldos>
<Tag><Id_tag>09900007306</Id_tag><Cat_Tecnica_Uv>1</Cat_Tecnica_Uv></Tag><Tag><Id_tag>09900008293</Id_tag><Cat_Tecnica_Uv>1</Cat_Tecnica_Uv>
<Saldos>


Lo que quiero es ir cargando en la tabla ficheros con ese formato (de mas de medio millon de elementos <Tag>)

Como puedo hacer eso?

Probe:

CREATE TABLE [dbo].[saldos_xml]([xmlOriginal] [xml] NOT NULL)
insert into saldos_xml(xmlOriginal)SELECT cast(x as xml)
FROM OPENROWSET(BULK 'X:\Fichero020412001526.xml',SINGLE_BLOB)
AS T(x)


INSERT INTO TAGS
SELECT
N.C.value('Id_tag[1]', 'nvarchar(20)') Id_tag,
N.C.value('Cat_Tecnica_Uv[1]', 'int') Cat_Tecnica_Uv
Fecha_Estado_Tag
FROM saldos_xml
CROSS APPLY xmlOriginal.nodes('/Saldos/Tag') N(C)


Pero lo veo ineficiente. Necesito cargarlos en la tabla TAGS para luego recorrerlos e ir guardando en otras tablas y haciendo diferentes operaciones.

¿Cómo podría hacerlo de forma más optima sin tener que guardarlos en SALDOS_XML, sino directamente en la tabla TAGS?

Un saludo y muchas gracias de antemano