select * from estudiante select * from Matricula select * from Asignatura select * from Nota insert Matricula values (7,2021,4) go alter procedure insertar_notas_periodo @idmat int,@semestre int as begin begin try begin transaction declare @idasig int declare c_asignat cursor for select idasig from Asignatura where semes = @semestre open c_asignat fetch c_asignat into @idasig while @@FETCH_STATUS = 0 begin insert Nota (idmat,idasig)values (@idmat,@idasig) fetch c_asignat into @idasig end close c_asignat deallocate c_asignat commit transaction end try begin catch rollback transaction close c_asignat deallocate c_asignat print @@error end catch end --- execute insertar_notas_periodo 8,4 select * from Estudiante e inner join Matricula m on e.idest = m.idest inner join Nota n on m.idmat = n.idmat inner join Asignatura a on n.idasig = a.idasig where e.idest = 7
CREATE DATABASE [LUBRICADORA]
GO USE [LUBRICADORA] GO /****** Object: Table [dbo].[auditoria_VENTASERVICIO] Script Date: 08/08/2022 18:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[auditoria_VENTASERVICIO]( [IDVENTASERVICIO] [int] NULL, [IDVENTA] [int] NULL, [IDSERVICIO] [int] NULL, [CANT] [int] NULL, [SUBTOTAL] [real] NULL, [servidor] [varchar](30) NULL, [usuario] [varchar](30) NULL, [fecha] [date] NULL, [hora] [time](7) NULL, [accion] [char](1) NULL ) ON [PRIMARY] GO /****** Object: Table [dbo].[CLIENTE] Script Date: 08/08/2022 18:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[CLIENTE]( [IDCLIENTE] [int] IDENTITY(1,1) NOT NULL, [NOMBRES] [varchar](100) NULL, [CEDULA] [varchar](100) NULL, [FECHA_NAC] [date] NULL, [GENERO] [int] NULL, PRIMARY KEY CLUSTERED ( [IDCLIENTE] 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 /****** Object: Table [dbo].[MARCA] Script Date: 08/08/2022 18:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[MARCA]( [IDMARCA] [int] NOT NULL, [NOMBRE] [varchar](100) NULL, PRIMARY KEY CLUSTERED ( [IDMARCA] 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 /****** Object: Table [dbo].[MODELO] Script Date: 08/08/2022 18:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[MODELO]( [IDMODELO] [int] NOT NULL, [IDMARCA] [int] NULL, [NOMBRE] [varchar](100) NULL, PRIMARY KEY CLUSTERED ( [IDMODELO] 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 /****** Object: Table [dbo].[SERVICIO] Script Date: 08/08/2022 18:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[SERVICIO]( [IDSERVICIO] [int] IDENTITY(1,1) NOT NULL, [NOMBRE] [varchar](100) NULL, [PRECIO] [real] NULL, PRIMARY KEY CLUSTERED ( [IDSERVICIO] 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 /****** Object: Table [dbo].[VEHICULO] Script Date: 08/08/2022 18:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[VEHICULO]( [IDVEHICULO] [int] IDENTITY(1,1) NOT NULL, [IDCLIENTE] [int] NULL, [IDMODELO] [int] NULL, [PLACA] [varchar](8) NULL, [ANIO] [int] NULL, PRIMARY KEY CLUSTERED ( [IDVEHICULO] 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 /****** Object: Table [dbo].[VENTA] Script Date: 08/08/2022 18:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[VENTA]( [IDVENTA] [int] IDENTITY(1,1) NOT NULL, [IDVEHICULO] [int] NULL, [FECHA_REGISTRO] [date] NULL, [SUBTOTAL] [real] NULL, [IVA] [real] NULL, [DSCTO] [real] NULL, [TOTAL] [real] NULL, PRIMARY KEY CLUSTERED ( [IDVENTA] 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 /****** Object: Table [dbo].[VENTASERVICIO] Script Date: 08/08/2022 18:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[VENTASERVICIO]( [IDVENTASERVICIO] [int] IDENTITY(1,1) NOT NULL, [IDVENTA] [int] NULL, [IDSERVICIO] [int] NULL, [CANT] [int] NULL, [SUBTOTAL] [real] NULL, PRIMARY KEY CLUSTERED ( [IDVENTASERVICIO] 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 INSERT [dbo].[auditoria_VENTASERVICIO] ([IDVENTASERVICIO], [IDVENTA], [IDSERVICIO], [CANT], [SUBTOTAL], [servidor], [usuario], [fecha], [hora], [accion]) VALUES (3, 1, 2, 1, 12, N'DESKTOP-EADL4IC', N'DESKTOP-EADL4IC\DOCENTE_UNEMI', CAST(N'2022-07-18' AS Date), CAST(N'18:36:59.4766667' AS Time), N'i') INSERT [dbo].[auditoria_VENTASERVICIO] ([IDVENTASERVICIO], [IDVENTA], [IDSERVICIO], [CANT], [SUBTOTAL], [servidor], [usuario], [fecha], [hora], [accion]) VALUES (4, 1, 3, 1, 5, N'DESKTOP-EADL4IC', N'DESKTOP-EADL4IC\DOCENTE_UNEMI', CAST(N'2022-07-18' AS Date), CAST(N'18:37:30.3300000' AS Time), N'i') INSERT [dbo].[auditoria_VENTASERVICIO] ([IDVENTASERVICIO], [IDVENTA], [IDSERVICIO], [CANT], [SUBTOTAL], [servidor], [usuario], [fecha], [hora], [accion]) VALUES (3, 1, 2, 1, 12, N'DESKTOP-EADL4IC', N'DESKTOP-EADL4IC\DOCENTE_UNEMI', CAST(N'2022-07-18' AS Date), CAST(N'18:38:29.0366667' AS Time), N'e') GO SET IDENTITY_INSERT [dbo].[CLIENTE] ON
[SUBTOTAL]) VALUES (4, 1, 3, 1, 5) SET IDENTITY_INSERT [dbo].[VENTASERVICIO] OFF GO SET ANSI_PADDING ON GO /****** Object: Index [UQ__CLIENTE__06BB8448B91F2424] Script Date: 08/08/2022 18:19:59 ******/ ALTER TABLE [dbo].[CLIENTE] ADD UNIQUE NONCLUSTERED ( [CEDULA] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] GO SET ANSI_PADDING ON GO /****** Object: Index [UQ__MARCA__B21D0AB937F0DFFA] Script Date: 08/08/2022 18:19:59 ******/ ALTER TABLE [dbo].[MARCA] ADD UNIQUE NONCLUSTERED ( [NOMBRE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] GO SET ANSI_PADDING ON GO /****** Object: Index [UQ__SERVICIO__B21D0AB96BE4DFD6] Script Date: 08/08/2022 18:19:59 ******/ ALTER TABLE [dbo].[SERVICIO] ADD UNIQUE NONCLUSTERED ( [NOMBRE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] GO SET ANSI_PADDING ON GO /****** Object: Index [UQ__VEHICULO__E441AE0051E52857] Script Date: 08/08/2022 18:19:59 ******/ ALTER TABLE [dbo].[VEHICULO] ADD UNIQUE NONCLUSTERED ( [PLACA] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] GO ALTER TABLE [dbo].[CLIENTE] ADD DEFAULT (getdate()) FOR [FECHA_NAC] GO ALTER TABLE [dbo].[CLIENTE] ADD DEFAULT ((1)) FOR [GENERO] GO ALTER TABLE [dbo].[SERVICIO] ADD DEFAULT ((0.00)) FOR [PRECIO] GO ALTER TABLE [dbo].[VENTA] ADD DEFAULT ((0.00)) FOR [IVA] GO ALTER TABLE [dbo].[VENTA] ADD DEFAULT ((0.00)) FOR [DSCTO] GO ALTER TABLE [dbo].[VENTA] ADD DEFAULT ((0.00)) FOR [TOTAL] GO ALTER TABLE [dbo].[VENTASERVICIO] ADD DEFAULT ((0.00)) FOR [SUBTOTAL] GO ALTER TABLE [dbo].[MODELO] WITH CHECK ADD FOREIGN KEY([IDMARCA]) REFERENCES [dbo].[MARCA] ([IDMARCA]) GO ALTER TABLE [dbo].[VEHICULO] WITH CHECK ADD FOREIGN KEY([IDCLIENTE]) REFERENCES [dbo].[CLIENTE] ([IDCLIENTE]) GO ALTER TABLE [dbo].[VEHICULO] WITH CHECK ADD FOREIGN KEY([IDMODELO]) REFERENCES [dbo].[MODELO] ([IDMODELO]) GO ALTER TABLE [dbo].[VENTA] WITH CHECK ADD FOREIGN KEY([IDVEHICULO]) REFERENCES [dbo].[VEHICULO] ([IDVEHICULO]) GO ALTER TABLE [dbo].[VENTASERVICIO] WITH CHECK ADD FOREIGN KEY([IDSERVICIO]) REFERENCES [dbo].[SERVICIO] ([IDSERVICIO]) GO ALTER TABLE [dbo].[VENTASERVICIO] WITH CHECK ADD FOREIGN KEY([IDVENTA]) REFERENCES [dbo].[VENTA] ([IDVENTA]) GO
insert SERVICIO values ('revisión de bateria',1),
('cambio de aceite',1.5),('revisión de neumaticos',2) usE LUBRICADORA select * from sys.tables --cursores-- select * from SERVICIO insert SERVICIO values ('revisión de bateria',1), ('cambio de aceite',1.5),('revisión de neumaticos',2) select * from VENTA select * from VENTASERVICIO select * from VEHICULO select @@IDENTITY go create proc sp_generar_vta @idvehiculo int as begin try begin transaction --grabar la cabecera de la venta insert VENTA (IDVEHICULO,FECHA_REGISTRO) values (@idvehiculo,GETDATE()) declare @idvta int set @idvta = @@IDENTITY --grabar el detalle/venta, con todos los servicios declare @idserv int, @prec real declare c_servicios cursor for select IDSERVICIO,PRECIO from SERVICIO open c_servicios fetch c_servicios into @idserv,@prec while @@FETCH_STATUS = 0 begin insert VENTASERVICIO (IDVENTA,IDSERVICIO,CANT,SUBTOTAL) values (@idvta,@idserv,1,1*@prec) fetch c_servicios into @idserv,@prec end close c_servicios deallocate c_servicios --actualizar el subtotal, iva y el total de la venta declare @subt real = (select sum(SUBTOTAL) from VENTASERVICIO where IDVENTA = @idvta) declare @iva real = @subt * 0.12 declare @tot real = @subt + @iva update VENTA set SUBTOTAL = @subt,IVA=@iva,TOTAL=@tot where IDVENTA = @idvta commit transaction end try begin catch rollback transaction select @@ERROR end catch go exec sp_generar_vta 6 select * from VENTA v,VENTASERVICIO vs, SERVICIO s where v.IDVENTA = 3 and v.IDVENTA = vs.IDVENTA and vs.IDSERVICIO = s.IDSERVICIO
Explique Por Qué Las Pruebas de Interfaz Son Necesarias Incluso Cuando Los Componentes Individuales Han Sido Validados Extensamente A Través de Pruebas de Componentes e Inspecciones de Programas