Tablas – Datos XML

Uso de datos XML en tablas en SQL Server

Es posible incluir en un campo de una tabla datos en formato XML (eXtensible Markup Language), el tipo de datos XML permite almacenar datos que dependan del registro en la misma tabla y posiblemente evitar diseñar un maestro – detalle.

Ejemplo

En una clínica veterinaria se podría guardar los datos de las mascotas de un determinado propietario en una sola tabla, es decir, Propietarios y Mascotas en la misma tabla. En el código se muestra la inserción de registros de manera manual, es necesario de preferencia usar algún editor de archivos XML.

Tabla para Propietarios

Create table Propietarios
(
PropietariosCodigo nchar(10) not null ,
PropietariosNombre nvarchar(200) not null,
Mascotas XML,
PropietariosTelefono nvarchar(30),
constraint PropietariosPk primary key (PropietariosCodigo)
)
go

Al insertar los datos del Propietario, se pueden insertar los datos de sus mascotas en el campo Mascotas de tipo XML.

Insert into Propietarios
(PropietariosCodigo, PropietariosNombre, Mascotas, PropietariosTelefono)
values
(‘85214′,’CARLOS MONTENEGRO’,'<Mascotas>
<Mascota>
<Codigo>1285</Codigo>
<Descripcion>Gato</Descripcion>
<Nombre>Garfield</Nombre>
<FechaNacimiento>15/07/2015</FechaNacimiento>
</Mascota>
<Mascota>
<Codigo>89658</Codigo>
<Descripcion>Perro</Descripcion>
<Nombre>Cody</Nombre>
<FechaNacimiento>18/09/2005</FechaNacimiento>
</Mascota>
</Mascotas>’,’948635251′),
(‘74965′,’LUIS VILLANUEVA’,'<Mascotas>
<Mascota>
<Codigo>9625</Codigo>
<Descripcion>Gallo</Descripcion>
<Nombre>Aristides</Nombre>
<FechaNacimiento>05/04/1992</FechaNacimiento>
</Mascota>
<Mascota>
<Codigo>89345</Codigo>
<Descripcion>Loro</Descripcion>
<Nombre>Betito</Nombre>
<FechaNacimiento>18/09/2005</FechaNacimiento>
</Mascota>
<Mascota>
<Codigo>4545</Codigo>
<Descripcion>Rata</Descripcion>
<Nombre>Romulo Alan</Nombre>
<FechaNacimiento>08/10/2005</FechaNacimiento>
</Mascota>
</Mascotas>’,’01-252858′)
go




Al pulsar sobre el campo XML se muestre el detalle de cada registro.

Las tablas con campos de tipo XML se pueden listar incluyendo todos los datos en un formato de salida XML

select * from Propietarios for XML auto
go

select * from Propietarios for XML raw
go