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