Está en la página 1de 4

PRACTICA CALIFICADA 3

SQL II
ALUMNA: AMANCIO AMPUERO SHEYLA PATRICIA
PRACTICA 9
Desarrollar un procedimiento para registrar un nuevo cliente. El procedimiento debe
generar el código del cliente y retornarlo a través de un parámetro de salida.
USE eurekabank
GO
/* PREGUNTA 9*/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS
(
SELECT name
FROM sys.procedures
WHERE name='usp_cliente_ingresar'
)
DROP PROCEDURE usp_cliente_ingresar
GO
-- =============================================
-- Author: Sheyla Amancio
-- Create date: 06/09/2021
-- Description: PREGUNTA 9
-- =============================================
CREATE PROCEDURE usp_cliente_ingresar
(
@vch_cliepaterno VARCHAR(25) =NULL,
@vch_cliematerno VARCHAR(25) =NULL,
@vch_clienombre VARCHAR(30) =NULL,
@vch_cliedni CHAR(8) =NULL,
@vch_clieciudad VARCHAR(30) =NULL,
@vch_cliedireccion VARCHAR(50) =NULL,
@vch_clietelefono VARCHAR(20) =NULL,
@vch_clieemail VARCHAR(50) =NULL
--@vch_cliecodigo CHAR(5) OUTPUT
)
AS
BEGIN
PRINT 'Ingresar los parametros'
-- Declare the return variable here
DECLARE @vch_cliecodigo char(5)
DECLARE @i int
select @i = COUNT(chr_cliecodigo) FROM [eurekabank].[dbo].[Cliente]

--SET @Xchr_cliecodigo=CONCAT('000', @Xcodigousado+1 )


set @vch_cliecodigo=RIGHT('00000'+CONVERT(char(5),@i),5)

insert into [dbo].[Cliente]


(chr_cliecodigo,
vch_cliepaterno ,
vch_cliematerno ,
vch_clienombre ,
chr_cliedni ,
vch_clieciudad ,
vch_cliedireccion,
vch_clietelefono,
vch_clieemail )
values
(@vch_cliecodigo ,
@vch_cliepaterno ,
@vch_cliematerno ,
@vch_clienombre ,
@vch_cliedni ,
@vch_clieciudad ,
@vch_cliedireccion,
@vch_clietelefono,
@vch_clieemail);

return @i

END
GO
exec usp_cliente_ingresar
'AMANCIO','AMPUERO','SHEYLA','76414166','LIMA','SMP','9697-
62516','sheyla.amancio.a@uni.pe'

SELECT * FROM [dbo].[Cliente]

PRACTICA 10
Desarrollar un procedimiento para registrar un deposito en una cuenta especifica.
USE eurekabank
GO
/* PREGUNTA 10*/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS
(
SELECT name
FROM sys.procedures
WHERE name='usp_cuentas_deposito'
)
DROP PROCEDURE usp_cuentas_deposito
GO
-- =============================================
-- Author: Sheyla Amancio
-- Create date: 06/09/2021
-- Description: PREGUNTA 10
-- =============================================
CREATE PROCEDURE usp_cuentas_deposito
(
@chr_cuencodigo char (8),
@ent_movinumero int ,
@dtt_movifecha datetime,
@chr_emplcodigo char (4) ,
@chr_tipocodigo char (3) ,
@dec_moviimporte money ,
@chr_cuenreferencia char (8)
)
AS
SELECT convert(int,max(mov.[int_movinumero]))
FROM movimiento mov
INNER JOIN tipomovimiento tmov
ON mov.chr_tipocodigo=tmov.chr_tipocodigo
WHERE [chr_cuencodigo]=00100001
BEGIN
DECLARE @dep int
SELECT @dep = convert(int,max (mov.int_movinumero))
FROM movimiento mov
INNER JOIN tipomovimiento tmov
ON
mov.chr_tipocodigo=tmov.chr_tipocodigo
WHERE mov.chr_tipocodigo=
@chr_tipocodigo and mov.chr_cuencodigo= @chr_cuencodigo

SET @ent_movinumero = convert(int, @dep+1)

insert into [dbo].[Movimiento]


( chr_cuencodigo ,
int_movinumero ,
dtt_movifecha ,
chr_emplcodigo ,
chr_tipocodigo ,
dec_moviimporte ,
chr_cuenreferencia)
values
( @chr_cuencodigo,
@ent_movinumero,
CONVERT(CHAR(10),@dtt_movifecha,105),
@chr_emplcodigo,
@chr_tipocodigo,
@dec_moviimporte,
@chr_cuenreferencia);

END
GO

También podría gustarte