PROCEDURE
--1,Tạo thủ tục cho biết sĩ số của các khoa trong trường( tính toán):
USE QLDIEM
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME='SISOKHOA' AND TYPE='P')
DROP PROC SISOKHOA
CREATE PROC SISOKHOA
AS
SELECT KHOA.MAKHOA,KHOA.TENKHOA, COUNT(*)AS 'SL SINHVIEN' FROM SINHVIEN,KHOA WHERE
SINHVIEN.MAKHOA=KHOA.MAKHOA
GROUP BY KHOA.MAKHOA,TENKHOA
EXEC SISOKHOA
--2,Tạo thủ tục cho biết dssv thi lại (hiển thị)
USE QLDIEM
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME='DSSV' AND TYPE='P')
DROP PROC DSSV
CREATE PROC DSSV
AS
SELECT DISTINCT(KETQUA.MASV),TENSV FROM SINHVIEN,KETQUA
WHERE SINHVIEN.MASV=KETQUA.MASV AND LANTHI>1
EXEC DSSV
--3,Tạo thủ tục đưa tên môn học, và trả về 1 tức là có sinh viên học môn đó ngược lại trả về 0
USE QLDIEM
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME='SPMONHOC' AND TYPE='P')
DROP PROC SPMONHOC
CREATE PROC SPMONHOC @TENMH VARCHAR(20)
AS
IF EXISTS (SELECT * FROM MONHOC WHERE MAMH IN(SELECT MAMH FROM KETQUA WHERE
KETQUA.MAMH=MONHOC.MAMH
AND @TENMH=MONHOC.TENMH))
begin
PRINT '0'
RETURN 1
END
ELSE
BEGIN
PRINT'1'
RETURN 0
END
EXEC SPMONHOC 'TRIETHOC'
--CACH2:
USE QLDIEM
GO
CREATE PROC SPMONHOC(@TENMH NCHAR(10))
AS
IF EXISTS(SELECT KETQUA.MASV,KETQUA.MAMH,TENMH FROM KETQUA,MONHOC
WHERE KETQUA.MAMH=MONHOC.MAMH AND MONHOC.TENMH=@TENMH)
RETURN 1
ELSE
RETURN 0
DECLARE @KT INT
EXEC @KT =SPMONHOC'TRIETHOC'
SELECT @KT AS THONGBAO
--Thêm sv vào bảng sv (kiểm tra có hay ko)
--(masv,tensv,ngaysinh,gioitinh,diachi,tinh,makhoa,hocbong)
USE QLDIEM
GO
IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='THEMSV' AND TYPE='P')
DROP PROCEDURE THEMSV
CREATE PROC THEMSV @MASV VARCHAR(5),@TENSV VARCHAR(50)
,@NGAYSINH DATETIME,@GIOITINH BIT,@DIACHI VARCHAR(50),@TINH VARCHAR(50)
,@MAKHOA VARCHAR(5),@HOCBONG INT
AS
IF EXISTS(SELECT * FROM SINHVIEN WHERE MASV=@MASV)
BEGIN
RAISERROR('DA CO MA SINH VIEN',11,1)
RETURN 1
END
ELSE
INSERT INTO sinhvien(masv,tensv,ngaysinh,gioitinh,diachi,tinh,makhoa,hocbong)
VALUES(@MASV,@TENSV,@NGAYSINH,@GIOITINH,@DIACHI,@TINH,@MAKHOA,@HOCBONG)
IF(@@ERROR=0)
RAISERROR('KO THEM DUOC',11,1)
EXEC THEMSV 09,'NGAN','09/09/90',1,'VIETRI','PHU THO','CNTT',900000
SELECT * FROM SINHVIEN
--XOA MOT SINH VIEN NAO DO THEO MASV
USE QLDIEM
GO
IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='XOA' AND TYPE='P')
DROP PROC XOA
CREATE PROC XOAt(@MASV INT)
AS
IF NOT EXISTS(SELECT * FROM SINHVIEN WHERE MASV=@MASV)
BEGIN
PRINT('SV 0ton tai')
RETURN
END
DELETE FROM SINHVIEN WHERE MASV=@MASV AND MASV='9'
IF(@@ERROR=0)
PRINT('KHONG XOA DUOC')
EXEC XOAt 9
SELECT * FROM SINHVIEN
--UPDATE THONG TIN CHO BANG SINH VIEN
USE QLDIEM
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME='CAPNHATSV' AND TYPE='P')
DROP PROC CAPNHATSV
CREATE PROC CAPNHATSV @MASV VARCHAR(5),@TENSV VARCHAR(50),@NGAYSINH DATETIME,@GIOITINH BIT,
@DIACHI VARCHAR(50),@TINH VARCHAR(50),@MAKHOA VARCHAR(5),@HOCBONG INT
AS
IF NOT EXISTS(SELECT * FROM SINHVIEN WHERE MASV=@MASV)
BEGIN
RAISERROR('SV KHONG TON TAI',11,1)
RETURN
END
ELSE
UPDATE SINHVIEN
SET
MASV=@MASV,
TENSV=@TENSV,
NGAYSINH=@NGAYSINH,
GIOITINH=@GIOITINH,
DIACHI=@DIACHI,
TINH=@TINH,
MAKHOA=@MAKHOA,
HOCBONG=@HOCBONG
IF (@@error=0)
raiserror('khong the update',11,1)
go
USE QLDIEM
GO
exec capnhatsv 91003,'tran thu','12/04/1975','0','viet tri','phu tho','CNTT',2200000
Bạn đang đọc truyện trên: Truyen247.Pro