Sei sulla pagina 1di 5

USE BDTurismoJaen

go
--::::::::::::::::::::::: AREA :::::::::::::::::::::::::::::::::--------- INSERTAR ----CREATE PROCEDURE pa_insertarArea @codigo int OUTPUT, @nombre
varchar(60)
AS
BEGIN
SELECT @codigo=ISNULL(MAX(codigo_Are),0)+1 FROM Area
INSERT INTO Area(codigo_Are,nombre_Are)
VALUES(@codigo,@nombre)
END
go
------ MODIFICAR ----CREATE PROCEDURE pa_modificarArea @codigo int,@nombre
varchar(60),@vigencia bit
AS
BEGIN
UPDATE Area SET nombre_Are=@nombre, vigencia_Are=@vigencia
WHERE codigo_Are=@codigo
END
Go
------ ELIMINAR ----CREATE PROCEDURE pa_eliminarArea @codigo int
AS
BEGIN
IF EXISTS(SELECT * FROM Personal WHERE codigo_Are=@codigo)
RAISERROR('NO se puede eliminar por que existe personal
asociado',16,1)
ELSE
DELETE FROM Area WHERE codigo_Are=@codigo
END
Go
------ LISTAR ----CREATE PROCEDURE pa_listarArea
AS
BEGIN
SELECT codigo_Are,nombre_Are,vigencia_Are
FROM Area
ORDER BY nombre_Are
END
go

------ LEER ----CREATE PROCEDURE pa_leerArea @codigo int


AS
BEGIN
SELECT codigo_Are,nombre_Are,vigencia_Are
FROM Area
WHERE codigo_Are=@codigo
END
go
------ LISTAR AREAS VIGENTES ----CREATE PROCEDURE pa_listarAreasVigentes
AS
BEGIN
SELECT codigo_Are,nombre_Are
FROM Area
WHERE vigencia_Are=1
END
go
--::::::::::::::::::::::: PERSONAL :::::::::::::::::::::::::::::::::------ INSERTAR ----CREATE PROCEDURE pa_insertarPersonal @dni char(8),@nombres
varchar(50),@apellidoPat varchar(30),
@apellidoMat varchar(30),@sexo char(1),@direccion
varchar(80),@telefono char(9),@codigo_Are int
AS
BEGIN
INSERT INTO
Personal(dni_Per,nombres_Per,apellidoPat_Per,apellidoMat_Per,sexo_Per,
direccion_Per,telefono_Per,codigo_Are)
VALUES(@dni,@nombres,@apellidoPat,@apellidoMat,@sexo,@direccion,@telef
ono,@codigo_Are)
END
go

------ MODIFICAR ----CREATE PROCEDURE pa_modificarPersonal @dni char(8),@nombres


varchar(50),@apellidoPat varchar(30),
@apellidoMat varchar(30),@sexo char(1),@direccion
varchar(80),@telefono char(9),@codigo_Are int,@estado
char(1),@vigencia bit
AS
BEGIN
UPDATE Personal SET
nombres_Per=@nombres,apellidoPat_Per=@apellidoPat,apellidoMat_Per=@ape
llidoMat,
sexo_Per=@sexo,direccion_Per=@direccion,telefono_Per=@telefono,codigo_
Are=@codigo_Are,estado_Per=@estado, vigencia_Per=@vigencia
WHERE dni_Per=@dni
END
go
------ ELIMINAR ----CREATE PROCEDURE pa_eliminarPersonal @dni char(8)
AS
BEGIN
IF @dni IN (SELECT dni_Per from Usuario)
RAISERROR ('El personal no se puede eliminar, esta asociada a otro
evento',1,16)
ELSE
DELETE FROM Personal
WHERE dni_Per=@dni
END
go
------ LISTAR ----CREATE PROCEDURE pa_listarPersonal
AS
BEGIN
SELECT dni_Per,nombres_Per, apellidoPat_Per, apellidoMat_Per
,sexo_Per, estado_Per,vigencia_Per
FROM Personal
ORDER BY nombres_Per
END
go

------ LEER ----CREATE PROCEDURE pa_leerPersonal @dni char(8)


AS
BEGIN
SELECT
dni_Per,nombres_Per,apellidoPat_Per,apellidoMat_Per,sexo_Per,direccion
_Per,
telefono_Per,codigo_Are,estado_Per,vigencia_Per
FROM Personal
WHERE dni_Per=@dni
END
go
--- LEER PERSONAL PARA USUARIO
CREATE PROCEDURE pa_leerPersonalParaUsuario @dni char(8)
AS
BEGIN
IF @dni IN (SELECT dni_Per FROM Personal)
BEGIN
SELECT
dni_Per,nombres_Per,apellidoPat_Per,apellidoMat_Per,sexo_Per,direccion
_Per,
telefono_Per,codigo_Are,estado_Per,vigencia_Per
FROM Personal
WHERE dni_Per=@dni and (codigo_Are=1 or codigo_Are=2)
END
ELSE
RAISERROR('El personal no est registrado',16,1)
END
go
------ LISTAR PERSONAL VIGENTE ----CREATE PROCEDURE pa_listarPersonalVigente
AS
BEGIN
SELECT dni_Per,nombres_Per, apellidoPat_Per,
apellidoMat_Per,estado_Per
FROM Personal
WHERE vigencia_Per=1
END
go

------ LISTAR PERSONAL TIPO CHOFER----CREATE PROCEDURE pa_listarPersonalChofer


AS
BEGIN
SELECT dni_Per,nombres_Per, apellidoPat_Per, apellidoMat_Per
FROM Personal
WHERE codigo_Are=5 AND estado_Per='D' and vigencia_Per=1
END
Go

PROCEDIMIENTO ALMACENADO
CREATE PROCEDURE pa_insertarPedido
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
COMMIT TRANSACTION
END TRY
BEGIN CATCH
if @@trancount >0
rollback transaction
-- PARA MENSAJES DE ERROR
declare @msjError varchar(8000)
declare @sevError int

END

SELECT @msjError=Error_message(),@sevError=error_severity()
mando la aseveridad del error
RAISERROR(@msjError,@sevError,1) --lo disparo
END CATCH

Potrebbero piacerti anche