martes, 24 de febrero de 2009

Creación de los Procedimientos Almacenados

1)Store Procedure Mensaje: permitie enviar un mensaje enviándole una cadena

create procedure Mensaje
@mensaje varchar(100)
as
print
@mensaje
go


2)Store Procedure Poliza_Certificado: recibe como parámetro el número de la póliza y muestra la cantidad de certificados que tiene la póliza

create procedure Poliza_Certificado
@cod_pol char(6)
as
Select Num_pol,count(Num_cer)as 'Cantidad Certificados'
from tb_certificado
where Num_pol=@cod_pol
group by Num_pol
go


3) Store Procedure Insertar_Moneda: inserta un tipo de moneda validando que su tipo no se repita y su descripción sea única


create procedure Insertar_Moneda
@cod_moneda char(6), @desc_moneda varchar(40)
as
if exists(select*from tb_moneda where Tipo_mon=@cod_moneda
or Des_mon=@desc_moneda)
begin
exec Mensaje 'Tipo de moneda y/o descripcion ya existe'
return
end
insert into
tb_moneda(Tipo_mon,Des_mon) values(@cod_moneda, @desc_moneda)
exec Mensaje 'Se ingresaron los datos'
go


4) Store Procedure Consulta_Empleado: permite consultar un registro de la tabla empleado enviando un código

create procedure Consulta_Empleado
@codigo char(6)
as
if not exists(select Cod_emp from tb_empleado where Cod_emp=@codigo)

begin
exec
Mensaje 'Codigo no existe'
return
end
select
*from tb_empleado where Cod_emp=@codigo
go


5) Store Procedure Con_Auto_Pro: recibe un código de contratante y devuelve los datos de los propietarios

create procedure Con_Auto_Pro
@codigo char(6)
as
if (dbo.Datos_Contratante(@codigo) is null)
begin
exec
Mensaje 'Codigo no existe'
return
end
select
c.Plac_aut, p.Cod_pro, p.Nom_pro, p.Ape_pat_pro, p.Ape_mat_pro, p.Nro_doc_pro, p.Dir_pro, p.Fec_nac_pro, p.Tlf_pro, p.Cel_pro, p.Email_pro
from tb_poliza as po
inner join tb_certificado as c
on po.Num_pol=c.Num_pol
inner join tb_propietario as p
on c.Cod_ase=p.Cod_ase
where Cod_con=@codigo
go


6) Store Procedure Cont_Poliza: recibe un codigo de contratante y devuelve la cantidad de pólizas adquiridas en el 2007, así como su nombre y apellido


create procedure Cont_Poliza
@codigo char(6)
as
IF
(dbo.Cant_Polizas(@codigo) is null)
begin
exec
Mensaje 'Codigo no existe'
return
end

select c.Nom_con, c.Ape_pat_con, c.Ape_mat_con, count(p.Num_pol)
from tb_contratante as c
inner join tb_poliza as p
on c.Cod_con=p.Cod_con
where c.Cod_con=@codigo and year(Fec_ini_pol)=2007
group by c.Nom_con, c.Ape_pat_con, c.Ape_mat_con
go


7) Store Procedure Insertar_Courrier: permite insertar un courrier, enviándole todos sus datos

create procedure Insertar_Courrier
@COD CHAR (6),
@NOM VARCHAR(25),
@APE_PAT VARCHAR(25),
@APE_MAT VARCHAR(25),
@DOCUMENTO CHAR(7),
@DIR VARCHAR(25),
@TELF CHAR(10),
@CELL CHAR(10),
@CORREO VARCHAR(50),
@TIPODOC CHAR (6),
@PROV CHAR (6),
@DEP CHAR (6),
@DIS CHAR (6)
AS


IF EXISTS (SELECT * FROM TB_COURRIER WHERE COD_COU=@COD OR (NOM_COU=@NOM AND APE_PAT_COU=@APE_PAT AND APE_MAT_COU=@APE_MAT))
BEGIN
EXEC
MENSAJE 'CODIGO Y/O NOMBRES Y APELLIDOS YA EXISTE'
RETURN
END
INSERT INTO
TB_COURRIER VALUES(@COD, @NOM, @APE_PAT, @APE_MAT,@DIR, @DOCUMENTO, @TELF, @CELL, @CORREO, @TIPODOC, @PROV, @DEP, @DIS)
EXEC MENSAJE 'DATOS INGRESADOS'
GO


8) Store Procedure Eliminar_combustible: recibe un tipo de combustible y lo elimina

CREATE PROCEDURE Eliminar_combustible
@CODIGO CHAR(6)
AS
IF @CODIGO IS NULL OR @CODIGO=''
BEGIN
exec
mensaje 'codigo de combustible en blanco'
RETURN
END

IF
NOT EXISTS (SELECT * FROM TB_combustible WHERE tipo_comb=@CODIGO) BEGIN
exec
mensaje 'NO EXISTE UN COMBUSTIBLE CON DICHO CODIGO '
RETURN
END
BEGIN
DELETE
TB_combustible WHERE tipo_comb=@CODIGO
exec mensaje 'combustible eliminado'
END
GO


9) Store Procedure Modificar_Courrier: permite modificar un courrier, enviándole todos sus datos

create procedure Modificar_Courrier
@COD CHAR (6),
@NOM VARCHAR(25),
@APE_PAT VARCHAR(25),
@APE_MAT VARCHAR(25),
@DOCUMENTO CHAR(7),
@DIR VARCHAR(40),
@TELF CHAR(10),
@CELL CHAR(10),
@CORREO VARCHAR(50)
AS
update
TB_COURRIER
set cod_cou=@COD, nom_cou=@NOM, ape_pat_cou=@APE_PAT, ape_mat_cou=@APE_MAT, nro_doc_cou=@DOCUMENTO,
dir_cou=@DIR, tlf_cou=@TELF, cel_cou=@CELL
where cod_cou=@COD
EXEC MENSAJE 'DATOS actualizados'
GO


10) Store Procedure Cant_solicitud: recibe como parametro el código del ejecutivo de ventas y muestra la cantidad de solicitudes que recibió


create procedure Cant_solicitud
@codigo char(6) as
Select e.Cod_emp,e.nom_emp, e.ape_pat_emp, e.ape_pat_emp,
count(s.Num_sol) as 'numero solicitudes'
from tb_empleado as e
inner join tb_solicitud as s
on e.cod_emp=s.cod_emp
where @codigo=e.Cod_emp
group by e.Cod_emp,e.nom_emp, e.ape_pat_emp, e.ape_pat_empgo

No hay comentarios: