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
Publicar un comentario