procedimientos almacenados en sql-ejemplo
TRANSCRIPT
Emperatriz Ruiz Quilcat
use planillas
go
CREATE TABLE AREAS(
CODAREA CHAR(4) PRIMARY KEY,
NOMAREA VARCHAR(30) NOT NULL)
GO
INSERT INTO AREAS VALUES('A001', 'SISTEMAS')
INSERT INTO AREAS VALUES('A002', 'VENTAS')
INSERT INTO AREAS VALUES('A003', 'CONTABILIDAD')
GO
CREATE TABLE CARGOS(
CODCAR CHAR(4) PRIMARY KEY,
NOMCAR VARCHAR(30)NOT NULL)
GO
INSERT INTO CARGOS VALUES ('C001', 'ANALISTA')
INSERT INTO CARGOS VALUES ('C002', 'PROGRAMADOR')
INSERT INTO CARGOS VALUES ('C003', 'JEFE DE VENTAS')
INSERT INTO CARGOS VALUES ('C004', 'VENDEDOR ')
INSERT INTO CARGOS VALUES ('C005', 'CONTADOR')
GO
CREATE TABLE EMPLEADOS(
CODEMP CHAR(4) PRIMARY KEY,
IDAREA CHAR(4) FOREIGN KEY REFERENCES AREAS(CODAREA),
IDCARGO CHAR (4)FOREIGN KEY REFERENCES CARGOS(CODCAR),
APELLIDO VARCHAR (30)NOT NULL,
SUELDO DECIMAL (7,2)NOT NULL)
Emperatriz Ruiz Quilcat
GO
SELECT*FROM AREAS
SELECT * FROM CARGOS
SELECT*FROM EMPLEADOS
GO
--PROCEDIMIENTOS ALMACENADOS
CREATE PROC MUESTRA_AREAS
AS
SELECT NOMAREA FROM AREAS ORDER BY NOMAREA ASC
GO
CREATE PROC MUESTRA_CARGOS
AS
SELECT NOMCAR FROM CARGOS ORDER BY NOMCAR ASC
GO
--P.A GRABAR EMPLEADO
create proc graba_empleado
@cod char(4),@nomarea varchar(30),@nomcargo varchar(30),@ape varchar(30),@sue
decimal(7,2)
as
if exists (select name from sysobjects where name = 'empleados' and type='U')
begin
if not exists (select * from empleados where codemp = @cod)
begin
--exite tabla pero no existe codigo
declare @codarea char(4),@codcar char(4)
Emperatriz Ruiz Quilcat
set @codarea=(select codarea from areas where nomarea=@nomarea)
set @codcar=(select codcar from cargos where nomcar=@nomcargo)
insert into empleados values(@cod,@codarea,@codcar,@ape,@sue)
select 1
end
else
select 2
end
else
--print 'no existe la tabla empleados'
select 3
GO
--P.A ELIMINA EMPLEADO
CREATE PROC ELIMINA_EMPLEADO
@COD CHAR(4)
AS IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME ='EMPLEADOS' AND TYPE ='U')
BEGIN
IF EXISTS (SELECT * FROM EMPLEADOS WHERE CODEMP=@COD)
BEGIN
DELETE FROM EMPLEADOS WHERE CODEMP=@COD
SELECT 1
END
ELSE
SELECT 2
END
Emperatriz Ruiz Quilcat
ELSE
SELECT 3
ALTER PROC MODIFICA_EMPLEADO --ALTER MODIFICA LOS PROCEDMIENTOS
@COD CHAR(4), @NOMAREA VARCHAR(30), @nomcargo varchar(30),@APE VARCHAR (30), @SUE
DECIMAL (7,2)
AS
IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME ='EMPLEADOS' AND TYPE ='U')
BEGIN
IF EXISTS(SELECT * FROM EMPLEADOS WHERE CODEMP=@COD)
BEGIN
DECLARE @CODAREA CHAR(4),@codcar char(4)
SET @CODAREA=(SELECT CODAREA FROM AREAS WHERE
NOMAREA=@NOMAREA)
set @codcar=(select codcar from cargos where nomcar=@nomcargo)
UPDATE EMPLEADOS SET IDAREA=@CODAREA,IDCARGO=@CODCAR,
APELLIDO=@APE,SUELDO=@SUE
WHERE CODEMP=@COD
SELECT 1
END
ELSE
SELECT 2
END
ELSE
SELECT 3
ALTER PROC BUSCA_EMPLEADO
Emperatriz Ruiz Quilcat
@COD CHAR(4)
AS
IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME ='EMPLEADOS' AND TYPE ='U')
BEGIN
IF EXISTS(SELECT * FROM EMPLEADOS WHERE CODEMP=@COD)
BEGIN
SELECT NOMAREA,NOMCAR, APELLIDO, SUELDO FROM AREAS
A,EMPLEADOS E, CARGOS C
WHERE A.CODAREA=E.IDAREA AND CODEMP=@COD AND C.CODCAR =
e.IDCARGO
END
END
EXEC BUSCA_EMPLEADO 'E004'
EXEC GRABA_EMPLEADO 'E001','SISTEMAS','ANALISTA','PANDO',300
EXEC GRABA_EMPLEADO 'E002','CONTABILIDAD''contador','SUAREZ',800
EXEC GRABA_EMPLEADO 'E003','SISTEMAS','ANALISTA','MARCOS',700
EXEC GRABA_EMPLEADO 'E005','VENTAS','JEFE DE VENTAS','BANDA',1000
EXEC GRABA_EMPLEADO 'E004','SISTEMAS','PROGRAMADOR','RABINES',1200
SELECT * FROM EMPLEADOS
Emperatriz Ruiz Quilcat
--CREATE PROC BUSCA_POR_AREA
--@NOMAREA CHAR(4)
--AS
--IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME ='EMPLEADOS' AND TYPE ='U')
-- BEGIN
-- IF EXISTS(SELECT * FROM EMPLEADOS WHERE CODEMP=@COD)
-- BEGIN
-- DECLARE @CODAREA CHAR(4)
-- SET @CODAREA=(SELECT CODAREA FROM AREAS WHERE
NOMAREA=@NOMAREA)
--
-- SELECT * FROM EMPLEADOS E, AREAS A
-- WHERE E.IDAREA=A.CODAREA AND A.NOMAREA=@NOMAREA
-- SELECT 1
-- END
--END
--END
ALTER PROC BUSCA
@INDEX INT, @VALOR VARCHAR(30)
AS IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME ='EMPLEADOS' AND TYPE ='U')
BEGIN
IF(@INDEX =1)
SELECT CODEMP,NOMAREA,NOMCAR,APELLIDO,SUELDO FROM AREAS A, CARGOS
C, EMPLEADOS E