lunes, 24 de noviembre de 2014

Migracion de Usuarios y Eventos



Descripcion:

Se dificultó la migración esencialmente por los pocos nombres proveídos por archivos de prueba, además que la información
era muy limitada al contar únicamente con un atributo nombre, por lo que no se podía registrar un usuario conforme se esperaba
en el diagrama elaborado previamente. Esto en vista que para efectos reales el teatro nacional, éste cuenta con usuarios registrados
para la compra de entradas a los eventos.


-----------------------------------------------------------------------------------------------------------------------

-- Verifica si el store procedure existe, para eliminarlo
IF OBJECT_ID ( N'BT_SP_INSERTAR_EVENTO', N'P' ) IS NOT NULL 
    DROP PROCEDURE BT_SP_INSERTAR_EVENTO;
GO

CREATE PROCEDURE BT_SP_INSERTAR_EVENTO
AS
BEGIN
 BEGIN TRY
  BEGIN TRANSACTION 
   -- Insert datos de Tipo Evento
   INSERT INTO [BoleteriaTeatroDB].[dbo].[BT_TipoEvento]
   (Nombre)
   SELECT Nombre FROM dbo.XMLDatosGenerales DG
   WHERE DG.TipoOperacion = 'insercionTipoShow' AND NOT EXISTS(
   (SELECT 1 FROM [BoleteriaTeatroDB].[dbo].[BT_TipoEvento] TE WHERE TE.Nombre = DG.Nombre))

   -- Insert datos de Evento
   INSERT INTO [BoleteriaTeatroDB].[dbo].[BT_Evento]
   (FK_TipoEvento,Nombre,Precio,Descripcion)
   SELECT FKTipoShow, Nombre, Precio, Descripcion FROM dbo.XMLDatosGenerales DG
   WHERE DG.TipoOperacion = 'insercionShow' AND NOT EXISTS(
   (SELECT 1 FROM [BoleteriaTeatroDB].[dbo].[BT_TipoEvento] TE WHERE TE.Nombre = DG.Nombre))

   -- Insert datos de Tanda
   INSERT INTO [BoleteriaTeatroDB].[dbo].[BT_Tanda]
   (FK_Evento,FechaHora,Duracion)
   SELECT FKTipoShow,Fecha,Hora FROM dbo.XMLDatosGenerales DG
   WHERE DG.TipoOperacion = 'insercionTandas' AND NOT EXISTS(
   (SELECT 1 FROM [BoleteriaTeatroDB].[dbo].[BT_Tanda] T 
   WHERE T.FK_Evento = DG.FKTipoShow AND T.FechaHora = DG.Fecha AND T.Duracion = DG.Hora))
  
  IF @@TRANCOUNT > 0
   COMMIT TRANSACTION;

  SELECT * FROM [BoleteriaTeatroDB].[dbo].[BT_TipoEvento]
  SELECT * FROM [BoleteriaTeatroDB].[dbo].[BT_Evento]
  SELECT * FROM [BoleteriaTeatroDB].[dbo].[BT_Tanda]

  RETURN 1;
 END TRY
 BEGIN CATCH
  EXEC BT_SP_GetErrorInfo;
  IF @@TRANCOUNT > 0
   ROLLBACK TRANSACTION;
  RETURN @@ERROR*-1;
 END CATCH
END
GO

-----------------------------------------------------------------------------------------------------------------------

-- Verifica si el store procedure existe, para eliminarlo
IF OBJECT_ID ( N'BT_SP_INSERTAR_USUARIO', N'P' ) IS NOT NULL 
    DROP PROCEDURE BT_SP_INSERTAR_USUARIO;
GO

CREATE PROCEDURE BT_SP_INSERTAR_USUARIO
AS
BEGIN
 BEGIN TRY
  BEGIN TRANSACTION 
   -- Insert datos de localidad
   INSERT INTO [BoleteriaTeatroDB].[dbo].[BT_Usuario]
   (Nombre,Contrasena)
   SELECT DISTINCT NombreComprador,NombreComprador FROM dbo.XMLMovimientos

  IF @@TRANCOUNT > 0
   COMMIT TRANSACTION;

  SELECT * FROM [BoleteriaTeatroDB].[dbo].[BT_Usuario]

  RETURN 1;
 END TRY
 BEGIN CATCH
  EXEC BT_SP_GetErrorInfo;
  IF @@TRANCOUNT > 0
   ROLLBACK TRANSACTION;
  RETURN @@ERROR*-1;
 END CATCH
END
GO

Horas Trabajadas: 2.5 hora
Autor: Edward Ovares Villegas

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio