Está en la página 1de 5

Procedimiento para Insertar Registro en Tabla

/*USAR BD*/
USE [ACE_COBER_PROV]
GO
/*CREAR PROCEDIMIENTO ALMACENADO*/
CREATE PROCEDURE [dbo].[p_insertar_broker]
(
/*DECLARAR PARÁMETROS DE ENTRADA*/
@sbs varchar(10),
@raz_nom char(200),
@sis varchar(10)
)
As
/*INICIO DE PROCEDIMIENTO*/
Begin
/*SI EL PARAMETRO SBS ES NO NULO*/
If (@sbs is not null)
Begin
/*AGREGAR NUEVA ENTRADA EN LA TABLA*/
insert into brokers
(cod_sbs,raz_nom_broker,cod_sis)
values (@sbs,@raz_nom,@sis)
End
/*FIN DE IF*/
End
/*FIN DE PROCEDIMIENTO*/

Procedimiento que realiza consulta y retorna un valor


USE [ACE_COBER_PROV]
GO

CREATE PROCEDURE [dbo].[q_login]


/*PARÁMETROS DE ENTRADA*/
@user varchar (6),
@pass varchar (20),
/*PARÁMETROS DE SALIDA*/
@rol varchar(50) output,
@nom varchar(200) output,
@ape varchar(200) output

AS
/*INICIO DE PROCEDIMIENTO*/
Begin
/*DECLARAR VARIABLE*/
Declare @n int
/*ASIGNAR A LA VARIABLE @n EL NÚMERO DE REGISTROS QUE CUMPLEN LA SIGUIENTE
CONDICION: EL USUARIO Y LA CONTRASEÑA DEBEN SER IGUALES A LOS INGRESADOS Y EL
ESTADO DEL USUARIO SEA ‘HABILITADO*/
set @n=(select count(usuario) from usuarios where usuario=@user and
contraseña=@pass and estado='habilitado');

/*CONDICIONAR LA SALIDA DE LAS VARIABLES @rol, @nom, @ape, PARA ELLO SE


EVALUA EL VALOR DE LA VARIABLE @n, DE LA SIGUIENTE MANERA:*/
If @n=1 /*Si es igual a 1*/
Begin
Set @rol= (select rol from usuarios where usuario=@user and
contraseña=@pass);
Set @nom= (select nombres from usuarios where usuario=@user and
contraseña=@pass);
Set @ape= (select apellidos from usuarios where usuario=@user and
contraseña=@pass);
End
Else /*Si es distinto a 1*/
Begin
Set @rol=''
Set @nom=''
Set @ape=''
End

End
/*FIN DE PROCEDIMIENTO*/

Procedimiento para Insertar Registro con ID alfanumérico secuencial


USE [ACE_COBER_PROV]
GO
CREATE PROCEDURE [dbo].[p_ncober]

/*PARÁMETROS DE ENTRADA*/
@lob varchar(5),
@cod_ramo varchar(5),
@cod_prod varchar(20),
@razon_contrat varchar(200),
@razon_aseg varchar(200),
@razon_broker varchar(200),
@fec_ini_vig SmallDateTime,
@fec_fin_vig SmallDateTime,
@fec_emi SmallDateTime,
@moneda varchar(30),
@sum_aseg decimal(20,2),
@prima_neta decimal(20,2),
@der_emi decimal(20,2),
@igv decimal(20,2),
@prima_bruta decimal(20,2),

/*PARÁMETRO DE SALIDA*/
@ncoberx varchar(13) OUTPUT

AS
/*INICIO PROCEDIMIENTO*/
Begin
Declare @n bigint;
Declare @ncober varchar(13);

/*LA VARIABLE @n SERÁ IGUAL AL VALOR DEL CAMPO NUMERACIÓN DE LA TABLA


NRO_DE_COBERTURA INCREMENTADO +1*/
Select @n=numeracion+1 from nro_de_cobertura;

/*CREACIÓN DEL NÚMERO DE ID, EL CUAL CONTIENE EL TEXTO ‘CP’ UNIDO AL AÑO ACTUAL;
SEGUIDO DEL NÚMERO CORRELATIVO DE @n RELLENADO CON CEROS*/
Set @ncober='CP' + cast(year(getdate()) as varchar(4)) + replicate('0',7-len(@n))
+ cast(@n as varchar(7));
Set @ncoberx = @ncober ;

/*INSERTAR ENTRADA CON ID CORRELATIVO*/


INSERT INTO coberturas_provisionales
values (
@ncober,
@lob,
@cod_ramo ,
@cod_prod ,
@razon_contrat ,
@razon_aseg ,
@razon_broker,
@fec_ini_vig,
@fec_fin_vig,
@fec_emi,
@moneda,
@sum_aseg,
@prima_neta,
@der_emi,
@igv,
@prima_bruta
);

/*ACTUALIZAR NÚMERO SECUENCIAL DE ID EN LA TABLA CORRESPONDIENTE*/


UPDATE nro_de_cobertura set numeracion=@n;

Return

End
/*FIN DE PROCEDIMIENTO*/

Procedimiento para Actualizar Registro


USE [ACE_COBER_PROV]
GO
CREATE PROCEDURE [dbo].[p_modif_usuario]
/*VARIABLES DE ENTRADA*/
@usuario varchar(6),
@contraseña varchar(20),
@correo varchar(100),
@estado varchar(15)

AS
Begin
/*ACTUALIZAR FILAS DONDE EL CAMPO USUARIO SEA IGUAL AL INGRESADO*/
Update usuarios
Set contraseña=@contraseña,
correo=@correo,estado=@estado
Where usuario=@usuario;

End
/*FIN DE PROCEDIMIENTO*/

Procedimiento que retorna todas las filas de una tabla


USE [ACE_COBER_PROV]
GO

CREATE PROCEDURE [dbo].[q_usuarios]


AS
Begin
/*SELECCIONA TODAS LAS FILAS DE LA TABLA*/
Select usuario From usuarios
End

Procedimiento que retorna conjunto de filas resultado de una consulta basada en indicios
USE [ACE_COBER_PROV]
GO
CREATE PROCEDURE [dbo].[q_buscar_asegurado]
‘VARIABLES DE ENTRADA
@opc char(1),
@valor varchar(200)
as
Begin

/*BÚSQUEDA 1: MEDIANTE LA RAZON SOCIAL O EL NOMBRE BASADO EN UN INIDICIO */


If (@opc='1')
Begin
Set @valor=rtrim(ltrim(@valor))
Select raz_nom_aseg as [Razón social o Nombre completo],
dni_aseg as DNI,ruc_aseg as RUC,cod_aseg as Cod From asegurados
Where raz_nom_aseg LIKE '%' + @valor + '%';
End
/* FIN OPC 1*/

/*BÚSQUEDA 2: MEDIANTE DNI BASADO EN UN INDICIO*/


If (@opc='2')
Begin
Set @valor=rtrim(ltrim(@valor))
Select raz_nom_aseg as [Razón social o Nombre completo],
dni_aseg as DNI,ruc_aseg as RUC,cod_aseg as Cod From asegurados
Where dni_aseg LIKE '%' + @valor + '%';
End
/* FIN OPC 2*/

/*BÚSQUEDA 3: MEDIANTE EL RUC BASADO EN UN INDICIO*/


If (@opc='3')
Begin
set @valor=rtrim(ltrim(@valor))
select raz_nom_aseg as [Razón social o Nombre completo],
dni_aseg as DNI,ruc_aseg as RUC,cod_aseg as Cod from asegurados
where ruc_aseg LIKE '%' + @valor + '%';
End
/*FIN OPC 3*/

End
/*FIN DE PROCEDIMIENTO*/

Procedimiento que retorna un conjunto de filas recogidas de dos tablas “X” e “Z”; solo si el campo
asociado de “Z” existe en las tabla “Y” y el campo asociado de “X” existe en “Z”; además de ello el valor
de “Z” debe ser igual al parámetro ingresado
/*USAR BASE DE DATOS*/
USE [ACE_COBER_PROV]
GO
/*CREAR PROCEDIMIENTO*/
CREATE PROCEDURE [dbo].[q_ramos_de_lob]
@lob varchar(5)
AS
/*INICIO DE PROCEDIMIENTO*/
BEGIN
/*LA TABLA RAMOS ES X, LINEAS_DE_NEGOCIO ES Y, LOB_RAMOS ES Z*/
SELECT dbo.ramos.ramo, dbo.ramos.denom_ramo,dbo.lob_ramos.lob,
dbo.lob_ramos.cod_ramo
FROM dbo.lineas_de_negocio INNER JOIN
dbo.lob_ramos ON dbo.lineas_de_negocio.lob = dbo.lob_ramos.lob INNER JOIN
dbo.ramos ON dbo.lob_ramos.cod_ramo = dbo.ramos.cod_ramo
where lob_ramos.lob=@lob

END
/*FIN DE PROCEDIMIENTO*/

También podría gustarte