Catalogos

 Natalia Vargas Reyes (2:00 pm a 3:00pm) 1 hora

Creación de la base de datos física, ya una vez comprendido el modelo. 

Al hacer el modelo hubieron varios problemas con FK's así que con un poco de ayuda de Jarod resolvimos problemas en el modelo.


/****** Object:  StoredProcedure [dbo].[SPCargar_CatalogosCiclistas]    Script Date: 01/02/2021 22:06:06 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[SPCargar_CatalogosCiclistas]

AS

BEGIN


--BEGIN TRY 


DECLARE @DocumentoXML XML;

SET @DocumentoXML=(SELECT [XML] FROM DatosXml WHERE  Nombre= 'Catalogos')

SELECT @DocumentoXML;

------------------------Paises---------------------------

INSERT INTO [dbo].[Pais](

[Id]

,[Nombre]

  )

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

FROM 

@DocumentoXML.nodes('Catalogos/Paises/Pais') AS t(d)



-------------------------Giros------------------------------------

INSERT INTO [dbo].[Giro](

[Id]

,[Nombre]

,[IdPais]

  )

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

, d.value('@IdPais', 'INT')

FROM 

@DocumentoXML.nodes('Catalogos/Giros/Giro') AS t(d)




-----------------------Etapas-----------------------------------

INSERT INTO [dbo].[Etapas](

[Id]

,[Nombre]

,[Puntos]

,[GiroId]

)

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

, d.value('@Puntos', 'INT')

, d.value('@IdGiro', 'INT')

FROM 

@DocumentoXML.nodes('Catalogos/Etapas/Etapa') AS t(d)




-----------------------Premios de montaña-----------------------------------

INSERT INTO [dbo].[PremioMontanna](

[Nombre]

,[Puntos]

,[EtapaId]

--En el xml viene el GiroId, why?

)

SELECT

  d.value('@Nombre', 'VARCHAR(128)')

, d.value('@Puntos', 'INT')

, d.value('@IdEtapa', 'INT')

FROM 

@DocumentoXML.nodes('Catalogos/PremiosMontana/PremioMontana') AS t(d)


   -----------------------Equipo--------------------------------------

INSERT INTO [dbo].[Equipo](

[Id]

,[Nombre]

)

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

FROM 

@DocumentoXML.nodes('Catalogos/Equipos/Equipo') AS t(d)



-----------------------Corredores-----------------------------------

INSERT INTO [dbo].[Corredor](

[Id]

,[Nombre]

)

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

FROM 

@DocumentoXML.nodes('Catalogos/Corredores/Corredor') AS t(d)


-----------------Jueces-----------------


INSERT INTO [dbo].[Juez](

[Id]

,[Nombre]

)

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

FROM 

@DocumentoXML.nodes('Catalogos/Jueces/Juez') AS t(d)


-----------------Tipo movimientos tiempo-----------------


INSERT INTO [dbo].[TipoMovimientoTiempo](

[Id]

,[Nombre]

)

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

FROM 

@DocumentoXML.nodes('Catalogos/TiposMovimientoTiempo/TipoMovimientoTiempo') AS t(d)


  

-----------------Tipo movimientos puntos de regularidad-----------------


INSERT INTO [dbo].[TipoMovimientoPuntosRegularidad](

[Id]

,[Nombre]

)

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

FROM 

@DocumentoXML.nodes('Catalogos/TiposMovimientosPuntosRegularidad/TipoMovimientosPuntosRegularidad') AS t(d)


-----------------Tipo movimientos punto de montaña-----------------

INSERT INTO [dbo].[TipoMovimientoPuntosMontanna](

[Id]

,[Nombre]

)

SELECT

  d.value('@Id', 'INT')

, d.value('@Nombre', 'VARCHAR(128)')

FROM 

@DocumentoXML.nodes('Catalogos/TiposMovimientoPuntosMontana/TipoMovimientoPuntosMontana') AS t(d)



--END TRY


--BEGIN CATCH

-- PRINT  'ERROR AL INSERTAR DATOS EN CATALOGOS'

-- INSERT INTO dbo.BE_DBErrors  VALUES (

-- SUSER_SNAME(),

-- ERROR_NUMBER(),

-- ERROR_STATE(),

-- ERROR_LINE(),

-- ERROR_PROCEDURE(),

-- ERROR_MESSAGE(),

-- GETDATE()

-- ); 

-- RETURN @@ERROR ;

--END CATCH



END


--EXEC SPCargar_CatalogosCiclistas


También hubieron problemas con el catch que como se ve está comentado porque por alguna razón da este problema




Comentarios