Migracion de Localidades y Asiento
Descripción:
Migracion de los datos de las tablas de migrar a la de localidades y asientos
Problemas:
Dentro de los problemas encontrados estan:
* Las localidades proporcionadas en el archivo no incluyen precios, por lo tanto se tuvieron que insertar los precios de las localidades.
* Otro error muy grande es que venían numeros de asientos repetidos generando grandes problemas en las consultas futuras.
-----------------------------------------------------------------------------------------------------------------------
-- Verifica si el store procedure existe, para eliminarlo
IF OBJECT_ID ( N'BT_SP_INSERTAR_LOCALIDAD', N'P' ) IS NOT NULL
DROP PROCEDURE BT_SP_INSERTAR_LOCALIDAD;
GO
CREATE PROCEDURE BT_SP_INSERTAR_LOCALIDAD
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
-- Insert datos de localidad
INSERT INTO [BoleteriaTeatroDB].[dbo].[BT_Localidad]
(Nombre,Precio)
SELECT Nombre,Precio FROM dbo.XMLDatosGenerales DG
WHERE DG.TipoOperacion = 'insercionLocalidad'AND NOT EXISTS(
(SELECT 1 FROM [BoleteriaTeatroDB].[dbo].[BT_Localidad] LC WHERE LC.Nombre = DG.Nombre))
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
SELECT * FROM [BoleteriaTeatroDB].[dbo].[BT_Localidad]
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_ASIENTO', N'P' ) IS NOT NULL
DROP PROCEDURE BT_SP_INSERTAR_ASIENTO;
GO
CREATE PROCEDURE BT_SP_INSERTAR_ASIENTO
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
-- Insert datos de asiento
INSERT INTO [BoleteriaTeatroDB].[dbo].[BT_Asiento]
(FK_Localidad,Numero)
SELECT FKLocalidad,ID AS NumeroDeAsiento FROM dbo.XMLDatosGenerales DG
WHERE DG.TipoOperacion = 'insercionAsiento'AND NOT EXISTS(
(SELECT 1 FROM [BoleteriaTeatroDB].[dbo].[BT_Asiento] A
WHERE A.Numero = DG.numeroAsiento AND A.FK_Localidad = DG.FKLocalidad))
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
SELECT * FROM [BoleteriaTeatroDB].[dbo].[BT_Asiento]
RETURN 1;
END TRY
BEGIN CATCH
EXEC BT_SP_GetErrorInfo;
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH
END
GO
Horas Trabajadas: 3 horas
Autor: Luis Diego Flores

0 comentarios:
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio