Tabla
USE [base]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Empresa](
[Id] [numeric](18, 0) NOT NULL,
[Nombre] [varchar](50) NULL,
[Direccion] [varchar](50) NULL,
CONSTRAINT [PK_Empresa] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
Stored procedure
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE Prueba
@DatosXml XML
AS
BEGIN
SET NOCOUNT ON;
insert into Empresa (Id, Nombre, Direccion)
SELECT
Pers.value('(Id)[1]', 'int') as 'Id',
Pers.value('(Nombre)[1]', 'Varchar(50)') as 'Nombre',
Pers.value('(Direccion)[1]', 'varchar(50)') as 'Direccion'
FROM
@DatosXml.nodes('/Empresa/Persona') as EMP(Pers)
END
GO
Ejecucion
exec Prueba @DatosXml = '<Empresa> <Persona> <Id>1</Id> <Nombre>Pedro</Nombre> <Direccion>Dir 1</Direccion> </Persona> <Persona> <Id>2</Id> <Nombre>Juan</Nombre> <Direccion>Dir 2</Direccion> </Persona> </Empresa>'
No hay comentarios:
Publicar un comentario