procedimientos almacenados en sql-ejemplo

7
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)

Upload: emperatriz-ruiz-quilcat

Post on 31-Mar-2015

191 views

Category:

Documents


5 download

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

Emperatriz Ruiz Quilcat

WHERE A.CODAREA=E.IDAREA AND C.CODCAR=E.IDCARGO AND

NOMAREA=@VALOR

IF(@INDEX =2)

SELECT CODEMP,NOMAREA,NOMCAR,APELLIDO,SUELDO FROM AREAS A, CARGOS

C, EMPLEADOS E

WHERE A.CODAREA=E.IDAREA AND C.CODCAR=E.IDCARGO AND

NOMCAR=@VALOR

END

EXEC BUSCA 1,'SISTEMAS'