Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
USE [tiendabd]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[idarticulo] ASC
UNIQUE NONCLUSTERED
[nombre] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY =
OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[idcategoria] ASC
UNIQUE NONCLUSTERED
[nombre] ASC
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[detalle_ingreso] Script Date: 22/06/2020 19:15:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[iddetalle_ingreso] ASC
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[iddetalle_venta] ASC
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[idingreso] ASC
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[idpersona] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY =
OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[idrol] ASC
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[usuario](
[idusuario] ASC
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
[idventa] ASC
) ON [PRIMARY]
GO
GO
GO
GO
GO
GO
GO
ON DELETE CASCADE
GO
GO
ON DELETE CASCADE
GO
GO
GO
GO
GO
GO
REalizar un video subirlo a la plataforma de Youtube o GoogleDrive explicando y demostrando como utilizar las
funcionesy vistas.
Realizar dos trigger uno para update y otro para delete cuando se ejecutar sobre la tabla detalleventa.
tRIGGER QUE RECALCULA EL CAMPO TOTAL DE LA TABLA VENTA CUANDO SE EJECUTA UN INSERT EN DETALLE_VENTA
CREATE TRIGGER RECALCULAR_TOTAL
ON DETALLE_VENTA
AFTER INSERT
AS
DECLARE @IDVENTA INT
DECLARE @TOTALACTAULIZADO DECIMAL(11,2)
SET @IDVENTA = (SELECT IDVENTA FROM INSERTED)
SET @TOTALACTAULIZADO = (SELECT SUM(DV.SUBTOTAL)
FROM DETALLE_VENTA DV
WHERE DV.IDVENTA=@IDVENTA)
UPDATE VENTA SET TOTAL=@TOTALACTAULIZADO WHERE IDVENTA=@IDVENTA
Create trigger actualizardetalle_venta
On detalle_venta
For update as
Begin
end
Realizar dos trigger uno para update y otro para delete cuando se ejecutar sobre la tabla detalleventa.
--CURSORES
--1. Se declara la varible/s a recorrer. Estan deben ser del mismo tipo de dato q la consulta
OPEN PLANILLA
WHILE @@fetch_status = 0
BEGIN
END
CLOSE PLANILLA
DEALLOCATE PLANILLA
[6:53 p. m., 26/6/2020] Ing Tito Romero: --Cursor que indica la ultima compra de un cliente
--1. Se declara la varible/s a recorrer. Estan deben ser del mismo tipo de dato q la consulta
DECLARE @ID AS INT
DECLARE @NOM AS NVARCHAR(100)
--2. Se declara el nombre del cursor y se vincula a la consulta(BASE) a ejecutar
DECLARE PLANILLA CURSOR FOR
SELECT P.IDPERSONA,P.NOMBRE
FROM PERSONA P
--3. Se abre el cursos invocando el nombre del mismo
OPEN PLANILLA
--4. Se llama a la primera fila con sus respectivos valores
FETCH NEXT FROM PLANILLA INTO @ID,@NOM
--5. Inicia el bucle While
WHILE @@fetch_status = 0
BEGIN
DECLARE @FECHA NVARCHAR(30)
DECLARE @TOTAL DECIMAL(11,2)
SET @FECHA = (SELECT TOP 1 V.FECHA_HORA
FROM VENTA V
WHERE V.IDCLIENTE=@ID
ORDER BY V.FECHA_HORA DESC)
SET @TOTAL = (SELECT TOP 1 V.TOTAL
FROM VENTA V
WHERE V.IDCLIENTE=@ID
ORDER BY V.FECHA_HORA DESC)
PRINT 'Hola '+@NOM+ ' tu ultima compra fue en '+@FECHA+' y su consumo fue de '+CAST(@TOTAL AS NVARCHAR)+'
Bs.'
--Se pasa a la siguiente fila a recorrer
FETCH NEXT FROM PLANILLA INTO @ID,@NOM
END
--6. Se cierra el cursor
CLOSE PLANILLA
--7. Se desaloja al cursor
DEALLOCATE PLANILLA