You are on page 1of 18

Ti liu m t C s d liu

Tn c s d liu : Qun l ng k chuyn Lp Nhm im n STT 1 2 3 MSSV 3309410044 3309410051 3309410064 : DCT309 : 06 : H tn V Tin Pht Nguyn Hu Trng Sn Nguyn B Thng Khi lng cng vic (%) 35 30 35 im

ti: Qun l ng k chuyn

M t hin trng

Phng gio v ti mt trng i hc mun tin hc ha vic qun l hc cc chuyn ca sinh vin. Kt qu ca vic phn tch yu cu trn nh sau: Mi sinh vin c mt m s duy nht, mt h tn, thuc mt phi, c mt ngy sinh, mt a ch v hc mt ngnh duy nht. Mi ngnh c mt m ngnh duy nht, c mt tn ngnh duy nht. Ngoi ra cng c n lu li mt con s cho bit s chuyn m mt sinh vin theo hc mt ngnh c th phi hc, v cng cn lu li tng s sinh vin tng theo hc ngnh ny. Sinh vin phi hc cc chuyn khc nhau. Mi chuyn c mt m duy nht v c mt tn duy nht. Cn lu li thng tin v s sinh vin ti a c th chp nhn c mi khi c mt lp m cho chuyn c th. Mi chuyn c th c hc bi sinh vin thuc nhiu ngnh v sinh vin thuc mi ngnh phi hc nhiu chuyn . Mi ngnh hc ti a l 8 chuyn . Vo mi hc k ca mi nm hc, ta cn lu li cc chuyn no c m ra cho hc k ca nm sinh vin c th ng k. Sinh vi n ch c ng k nhng chuyn c m. Khi sinh vin ng k h c, lu li vic ng k hc mt chuyn ca mt sinh vin vo mt nm ca mt hc k no . Mt sinh vin ch c ng k vo cc chuyn thuc ngnh hc ca sinh vin m thi. Mi nm c 2 hc k. Sinh vin ch c ng k ti a l 3 chuyn trong mt hc k m thi.

M hnh thc th kt hp (ERD)

ti: Qun l ng k chuyn

S quan h d liu (RDM)

Trang 2

ti: Qun l ng k chuyn

3.1 Lc
SinhVien MSSV HoTen Nganh MaNg TenNg SoCD SoSV Phai NgaySinh DiaChi MaNg

ChuyenDe MaCD ChuyenDeNganh MaCDN MaNg MaCD HocKy MaHKy ChuyenDeDuocMo MaCDMo DangKy MSSV MaCDMo SLSVToiDa MaCDN MaHKy HocKy Nam TenCD

3.2 M t lc
1. SinhVien Thuc tnh MSSV Kiu d liu varchar (6) Din gii M s ca sinh vin. Mi sinh vin c mt m s ring bit phn bit vi nhau. H v tn ca sinh vin. Nhn mt trong hai gi tr l Nam hoc N. Ngy sinh ca sinh vin. ia ch ca sinh vin. M ngnh sinh vin ang theo hc.

HoTen Phai NgaySinh Diachi MaNg

nvarchar (255) nvarchar (3) datetime nvarchar (255) varchar (4)

ti: Qun l ng k chuyn 2. Nganh Thuc tnh MaNg Kiu d liu varchar (4) Din gii M ngnh ca mt ngnh hc, dng phn bit cc ngnh hc vi nhau. Tn ca ngnh hc. S chuyn m mt sinh vin theo hc mt ngnh c th phi hc. Tng s sinh vin ang theo hc trong mt ngnh.

TenNg SoCD

nvarchar (100) int

SoSV 3. HocKy Thuc tnh MaHKy

int

Kiu d liu varchar (5)

Din gii M hc k, dng phn bit cc hc k khc nhau. Hc k ca nm hc. Nm hc.

HocKy Nam 4. ChuyenDe Thuc tnh MaCD TenCD 5. ChuyenDeNganh Thuc tnh MaCDN MaNg MaCD

int int

Kiu d liu varchar (5) nvarchar (100)

Din gii M chuyn , mi chuyn c m s duy nht. Tn ca chuyn .

Kiu d liu varchar (6) varchar (4) varchar (5)

Din gii M chuyn ca mt ngnh hc. M ngnh hc. M chuyn .

6. ChuyenDeDuocMo Thuc tnh MaCDMo SLSVToiDa MaCDN MaHKy Trang 4 Kiu d liu int int varchar (6) varchar (5) Din gii M chuyn c m ca ngnh hc. S lng sinh vin ti a ca mt chuyn . M chuyn ca mt ngnh hc c th. M hc k.

ti: Qun l ng k chuyn 7. DangKy Thuc tnh MSSV MaCDMo Kiu d liu varchar (6) int Din gii M s ca sinh vin ng k chuyn . M ca chuyn c m sinh vin ng k.

Ci t m hnh vt l

4.1 M hnh vt l

4.2 Vit Script


-- 1. To Database USE [master] GO DROP DATABASE DKCD CREATE DATABASE DKCD -- 2. To Table v Kha chnh USE [DKCD] GO

ti: Qun l ng k chuyn


CREATE TABLE Nganh( MaNg varchar(4) not null, TenNg nvarchar(100), SoCD int, SoSV int, CONSTRAINT pk_ng primary key (MaNg) ) CREATE TABLE SinhVien( MSSV varchar(6) not null, HoTen nvarchar(255), Phai nvarchar(3), NgaySinh datetime, DiaChi nvarchar(255), MaNg varchar(4), CONSTRAINT pk_sv primary key (MSSV) ) CREATE TABLE HocKy( MaHKy varchar(5) not null, HocKy int, Nam int, CONSTRAINT pk_hk primary key (MaHKy) ) CREATE TABLE DangKy( MSSV varchar(6) not null, MaCDMo int not null, CONSTRAINT pk_dk primary key (MSSV,MaCDMo) ) CREATE TABLE ChuyenDe( MaCD varchar(5) not null, TenCD nvarchar(100), CONSTRAINT pk_cd primary key (MaCD) ) CREATE TABLE ChuyenDeNganh( MaCDN varchar(6) not null, MaNg varchar(4), MaCD varchar(5), CONSTRAINT pk_cdn primary key (MaCDN) ) CREATE TABLE ChuyenDeDuocMo( MaCDMo int not null, SLSVToiDa int, MaCDN varchar(6), MaHKy varchar(5), CONSTRAINT pk_cddm primary key (MaCDMo) ) -- 3. To kha ngoi alter table SinhVien add constraint fk_sv_ng foreign key (MaNg) references Nganh(MaNg) alter table ChuyenDeNganh add constraint fk_cdn_cd foreign key (MaCD) references ChuyenDe(MaCD) alter table ChuyenDeNganh add constraint fk_cdn_ng foreign key (MaNg) references Nganh(MaNg) alter table ChuyenDeDuocMo add constraint fk_cddm_cdn foreign key (MaCDN) references ChuyenDeNganh(MaCDN) alter table ChuyenDeDuocMo add constraint fk_cddm_hk foreign key (MaHKy) references HocKy(MaHKy) alter table DangKy add constraint fk_dk_sv foreign key (MSSV) references SinhVien(MSSV) alter table DangKy add constraint fk_dk_cddm foreign key (MaCDMo) references ChuyenDeDuocMo(MaCDMo)

Trang 6

ti: Qun l ng k chuyn


-- nh dng ngy thng set dateformat dmy -- 4. Nhp d liu -- Nhp bng Chuyn . insert into ChuyenDe values('C0001',N'ng dng ton vo i sng') insert into ChuyenDe values('C0002',N'Cng ngh CDMA') insert into ChuyenDe values('C0003',N'Nghin cu Maketing ng dng') insert into ChuyenDe values('C0004',N'Thit k v ti u gii thut') insert into ChuyenDe values('C0005',N'K thut m phn thng mi') insert into ChuyenDe values('C0006',N'Cng ngh thng tin vi doanh nghip') insert into ChuyenDe values('C0007',N'Phng php dy v hc') insert into ChuyenDe values('C0008',N'ng dng cng ngh thng tin trong ging dy') insert into ChuyenDe values('C0009',N'Lut thng mi') insert into ChuyenDe values('C0010',N'Vn dng t tng HCM vo cuc sng') -- Nhp bng Hc K insert into HocKy values('HK001',1,2007) insert into HocKy values('HK002',2,2007) insert into HocKy values('HK003',1,2008) insert into HocKy values('HK004',2,2008) insert into HocKy values('HK005',1,2009) insert into HocKy values('HK006',2,2009) insert into HocKy values('HK007',1,2010) insert into HocKy values('HK008',2,2010) -- Nhp bng Ngnh. insert into Nganh values('N001',N'S phm ton tin',2,0) insert into Nganh values('N002',N'Cng ngh thng tin',2,0) insert into Nganh values('N003',N'K ton',1,0) insert into Nganh values('N004',N'Maketing',2,0) insert into Nganh values('N005',N'in t',3,0) insert into Nganh values('N006',N'S phm mm non',3,0) -- Nhp bng Chuyn Ngnh insert into ChuyenDeNganh values('CDN001','N001','C0001') insert into ChuyenDeNganh values('CDN002','N005','C0002') insert into ChuyenDeNganh values('CDN003','N004','C0003') insert into ChuyenDeNganh values('CDN004','N002','C0004') insert into ChuyenDeNganh values('CDN005','N003','C0005') insert into ChuyenDeNganh values('CDN006','N002','C0006') insert into ChuyenDeNganh values('CDN007','N001','C0007') insert into ChuyenDeNganh values('CDN008','N001','C0008') insert into ChuyenDeNganh values('CDN009','N004','C0009') insert into ChuyenDeNganh values('CDN010','N001','C0010') insert into ChuyenDeNganh values('CDN011','N002','C0010') insert into ChuyenDeNganh values('CDN012','N003','C0010') insert into ChuyenDeNganh values('CDN013','N004','C0010') insert into ChuyenDeNganh values('CDN014','N005','C0010') -- Nhp bng SinhVien insert into SinhVien values('SV0001',N'Nguyn B Thng',N'Nam','01/02/1989',N'114, Xa L i Hn, TpHCM','N001') insert into SinhVien values('SV0002',N'Nguyn Thanh Sang',N'Nam','03/09/1989',N'96 , Xa L H Ni, TpHCM','N001') insert into SinhVien values('SV0003',N'Nguyn Ch Thanh',N'Nam','04/04/1988',N'45 , Trn Hng o ,Qun 1 ,TpHCM','N001') insert into SinhVien values('SV0004',N'Nguyn Bo Anh',N'Nam','26/03/1989',N'23 , ng Khi, Qun 1, TpHCM','N001')

ti: Qun l ng k chuyn


insert into SinhVien values('SV0005',N'Nguyn Hu Trng Sn',N'Nam','01/02/1988',N'74, Trn Hng o,Qun 1, TpHCM','N001') insert into SinhVien values('SV0006',N'Dng Khang',N'N','01/02/1986',N'35, Trng nh, Qun 3, TpHCM','N002') insert into SinhVien values('SV0007',N'Trn Ch Quang',N'Nam','03/09/1989',N'116 , Xa L H Ni, Th c , TpHCM','N002') insert into SinhVien values('SV0008',N'Trn Ch Ti',N'Nam','04/04/1987',N'165 , Nguyn Vn C ,Qun 5 ,TpHCM','N002') insert into SinhVien values('SV0009',N'La Thanh Tun',N'Nam','26/03/1989',N'54A , ng Khi, Qun 1, TpHCM','N002') insert into SinhVien values('SV0010',N'Nguyn Th Ngc Hn',N'N','01/02/1988',N'49/13, Nguyn Tri ,Qun 1, TpHCM','N003') insert into SinhVien values('SV0011',N'L Hiu ',N'Nam','06/02/1988',N'33, 3/2 ,Qun 10 , TpHCM','N003') insert into SinhVien values('SV0012',N'Nguyn Vn Ngha',N'Nam','01/02/1988',N'75, Nguyn Tri ,Qun 1, TpHCM','N004') insert into SinhVien values('SV0013',N'Nguyn Th Trang',N'N','01/09/1988',N'16, Trn Hng o,Qun 1, TpHCM','N004') insert into SinhVien values('SV0014',N'Trn Quc Triu',N'Nam','02/02/1988',N'4, CMT8, Tn Bnh, TpHCM','N004') insert into SinhVien values('SV0015',N'H Vn Hong',N'Nam','01/02/1988',N'30, Trn Vn Cy, Qun 6, TpHCM','N004') insert into SinhVien values('SV0016',N'Nguyn Th Ngc Nga',N'N','21/09/1988',N'16, L Vn Vit, Qun 9, TpHCM','N002') -- Nhp bng Chuyn c M insert into ChuyenDeDuocMo values(1,10,'CDN001','HK001') insert into ChuyenDeDuocMo values(2,10,'CDN003','HK002') insert into ChuyenDeDuocMo values(3,20,'CDN010','HK003') insert into ChuyenDeDuocMo values(4,15,'CDN005','HK003') insert into ChuyenDeDuocMo values(5,10,'CDN007','HK005') insert into ChuyenDeDuocMo values(6,20,'CDN007','HK006') insert into ChuyenDeDuocMo values(7,10,'CDN008','HK007') insert into ChuyenDeDuocMo values(8,25,'CDN009','HK007') insert into ChuyenDeDuocMo values(9,20,'CDN010','HK008') -- Nhp bng ng K insert into DangKy values('SV0001',9) insert into DangKy values('SV0002',9) insert into DangKy values('SV0003',9) insert into DangKy values('SV0004',9) insert into DangKy values('SV0001',5) insert into DangKy values('SV0002',5) insert into DangKy values('SV0003',5) insert into DangKy values('SV0004',7) insert into DangKy values('SV0005',7) insert into DangKy values('SV0006',6) insert into DangKy values('SV0007',6) insert into DangKy values('SV0008',6) insert into DangKy values('SV0009',6) insert into DangKy values('SV0010',4) insert into DangKy values('SV0011',4) insert into DangKy values('SV0012',2) insert into DangKy values('SV0013',2) insert into DangKy values('SV0014',2) insert into DangKy values('SV0015',8)

Trang 8

ti: Qun l ng k chuyn

Thit k v ci t cc cu truy vn

5.1 Truy vn chn la (select)


Q1. Danh sch chuyn ca mt ngnh hc. (Danh sch chuyn ca ngnh Cng Ngh Thng Tin c MaNg = N002) R1(MaCDN,MaNg,MaCD) R2 (MaCDN,MaNg,MaCD,TenCD) KQ MaNg = N002 (ChuyenDeNganh) R1 R1.MaCD=ChuyenDe.MaCDChuyenDe TenCD (R2)

--Q1: Danh sch chuyn ca ngnh Cng Ngh Thng Tin c MaNg = 'N002' select TenCD from ChuyenDeNganh CDN, ChuyenDe CD where MaNg = 'N002' and CDN.MaCD = CD.MaCD

Q2. Danh sch chuyn ng k ca mt sinh vin. (Danh sch chuyn ng k ca sinh vin c MaSV = SV003 ) R1 (MaCDMo) R2 (MaCDN) R3 (MaCD) KQ MaCDMo (MSSV= SV0003(DangKy)) MaCDN(ChuyenDeDuocMoChuyenDeDuocMo.MaCDMo=R1.MaCDMoR1) MaCD(ChuyenDeNganhChuyenDeNgannh.MaCDN=R2.MaCDNR2) MaCD, TenCD (ChuyenDeChuyenDe.MaCD=R3.MaCDR3)

--Q2: Danh sch chuyn ng k ca sinh vin c MaSV = 'SV003' select 'M S Sinh Vin' = MSSV, 'Tn Chuyn ' = TenCD from DangKy DK, ChuyenDeDuocMo CDDM, ChuyenDeNganh CDN, ChuyenDe CD where DK.MSSV = 'SV0003' and DK.MaCDMo = CDDM.MaCDMo and CDDM.MaCDN = CDN.MaCDN and CDN.MaCD = CD.MaCD order by TenCD ASC

Q3. Danh sch cc sinh vin ca mt ngnh hc. (Danh sch sinh vin ca ngnh Cng Ngh Thng Tin c MaNg = N002) KQ MSSV, HoTen, Phai, NgaySinh, DiaChi (MaNg = N002 (SinhVien))

--Q3: Danh sch sinh vin ca ngnh Cng Ngh Thng Tin c MaNg = 'N002' Select MSSV, HoTen, Phai, NgaySinh, DiaChi from SinhVien where MaNg = 'N002'

ti: Qun l ng k chuyn Q4. Danh sch cc chuyn c m trong mt hc k, ca mt nm hc. (Danh sch cc chuyn c m ca hc k 1 nm 2009) R1 (MaHKy) R2 (MaCDN) R3 (MaCD) KQ MaHKy (Nam=2009 AND HocKy=1 (HocKy)) MaCDN(ChuyenDeDuocMoChuyenDeDuocMo.MaHKy=R1.MaHKyR1) MaCD(ChuyenDeNganhChuyenDeNgannh.MaCDN=R2.MaCDNR2) MaCD, TenCD (ChuyenDeChuyenDe.MaCD=R3.MaCDR3)

--Q4: Danh sch cc chuyn c m ca hc k 1 nm 2009 create view Q4_R1 as select MaCDN from HocKy HK, ChuyenDeDuocMo CDDM where HK.Nam = 2009 and HK.HocKy = 1 and CDDM.MaHKy = HK.MaHKy select CD.MaCD, CD. TenCD from ChuyenDe CD, ChuyenDeNganh CDN, Q4_R1 where Q4_R1.MaCDN = CDN.MaCDN and CDN.MaCD = CD.MaCD

5.2 Truy vn dng gom nhm (group by/having)


Q5. S lng chuyn ng k ca tng sinh vin. R1( MSSV, SoCDM ) KQ MSSV COUNT(MSSV)(DangKy) SinhVien.MSSV,HoTen, SoCDM (R1MSSVSinhVien)

--Q5: S lng chuyn ng k ca tng sinh vin select SV.MSSV, SV.HoTen , 'S C' = count(MaCDMo) from SinhVien SV left join DangKy DK on SV.MSSV=DK.MSSV group by SV.MSSV, SV.HoTen

Q6. Cho bit ngnh hc c nhiu sinh vin nht R1(MSSV,MaNg,TenNg) MSSV, MaNg( SinhVienMaNgNganh) R2(MaNg,TenNg ,SLSV) MaNg COUNT(MSSV)(R1) KQ MaNg, TenNg, SLSV( SLSV>= R2)

Trang 10

ti: Qun l ng k chuyn


--Q6: Cho bit ngnh hc c nhiu sinh vin nht select N.MaNg, N.TenNg, 'SLSV' = count(SV.MSSV) from SinhVien SV, Nganh N where SV.MaNg = N.MaNg group by N.MaNg, N.TenNg having count(SV.MSSV) >= all (select count(SV.MSSV) from SinhVien SV, Nganh N where SV.MaNg = N.MaNg group by N.MaNg, N.TenNg)

Thit k v ci t cc rng buc ton vn

6.1 Bng m t cc RBTV


Bi cnh Mt quan h Loi RBTV Min gi tr Lin thuc tnh Lin b Ph thuc tn ti Nhiu quan h Lin b Lin quan h Lin thuc tnh Lin quan h Thuc tnh tng hp Chu trnh R11 R12 R10, R9 R12 R11 R12 R10, R9 R12 PK FK1, FK3 Nganh R2, R3 ChuyenDe ChuyenDe Nganh HocKy R4, R5 ChuyenDe DuocMo R6 SinhVien R1, R7 DangKy

PK
FK2

PK
FK2, FK3, FK4

PK, R8
FK5

PK
FK4, FK5, FK7

PK
FK1, FK6

PK
FK6, FK7

Ghi ch:
FK1: FK2: FK3: FK4: FK5: FK6: FK7: fk_sv_ng fk_cdn_cd fk_cdn_ng fk_cddm_cdn fk_cddm_hk fk_dk_sv fk_dk_cddm

ti: Qun l ng k chuyn

6.2 M t v lp bng tm nh hng ca tng RBTV


R1: Phi ca sinh vin ch c th l Nam hoc N. sv TSinhVien, sv.Phai IN (Nam,N) Cui ------ALTER TABLE SINHVIEN ADD CONSTRAINT CHK_PHAI CHECK (PHAI IN ('NAM', 'NU'))

R2: S chuyn sinh vin ng k ca mi ngnh phi t 1 n 8. ng TNganh, ng.SoCD BETWEEN 1 AND 8 Cui ------ALTER TABLE NGANH ADD CONSTRAINT CHK_SOCD CHECK (SOCD BETWEEN 1 AND 8)

R3: S lng sinh vin trong mt ngnh hc phi l s dng.


ng TNganh,

ng.SoSV > 0 Cui ------ALTER TABLE NGANH ADD CONSTRAINT CHK_SOSV CHECK (SOSV > 0)

R4: Trong mt nm hc ch c 2 hc k.
hk THocKy,

hk.HocKy IN (1, 2) Cui ------ALTER TABLE HOCKY ADD CONSTRAINT CHK_HOCKY CHECK (HOCKY IN (1, 2))

R5: Nm hc phi l s dng.


hk THocKy,

hk.Nam > 0 Cui ------ALTER TABLE HOCKY ADD CONSTRAINT CHK_NAM CHECK (NAM > 0)

Trang 12

ti: Qun l ng k chuyn R6: S lng sinh vin ti a ca mi chuyn c m phi l s dng.
cddm TChuyenDeDuocMo,

cddm.SLSVToiDa > 0 Cui ------ALTER TABLE CDDM ADD CONSTRAINT CHK_SLSVTOIDA CHECK (SLSVTOIDA > 0)

R7: Ngy sinh ca sinh vin phi nh hn ngy hin ti.


sv TSinhVien,

sv.NgaySinh now Cui ------ALTER TABLE SINHVIEN ADD CONSTRAINT CHK_NGAYSINH CHECK (NGAYSINH <= NOW())

R8: Trong mt nm hc ch c 2 hc k.
hk1, hk2 THocKy,

NOT (hk1.Nam = hk2.Nam AND hk1.HocKy = hk2.HocKy) Cui THM HocKy + SA - (Nam, HocKy) XA -

R9: Sinh vin ch c ng k ti a 3 chuyn trong 1 hc k.


cddm TChuyenDeDuocMo, dk TDangKy: cddm.MaCDMo = dk.MaCDMo

Countdk.MSSV, cddm.MaHKy (dk.MaCDMo) 3 Cui THM ChuyenDe DuocMo DangKy + SA - (MaHKy) - (MaCDMo) XA + -

R10: S lng sinh vin ng k 1 chuyn khng vt qu s lng do chuyn quy nh.
cddm TChuyenDeDuocMo, dk TDangKy: cddm.MaCDMo = dk.MaCDMo

Countcddm.MaCDMo (dk.MSSV) cddm.SLSVToiDa Cui

ti: Qun l ng k chuyn THM ChuyenDe DuocMo DangKy + SA - (SLSVToiDa) - (MaCDMo) XA + -

R11: Tng s sinh vin trong mt ngnh phi bng s sinh vin ca ngnh .
ng TNganh, sv TSinhVien: ng.MaNg = sv.MaNg

Countng.MaNganh (sv.MSSV) = ng.SoSV Cui THM Nganh SinhVien + SA - (SoSV) - (MaNg) XA + -

R12: Sinh vin ch c ng k chuyn thuc ngnh hc ca sinh vin.


ng TNganh, sv TSinhVien, cddm TChuyenDeDuocMo, dk TDangKy, cdn TChuyenDeNganh: ng.MaNg = sv.MaNg ^ ng.MaNg = cdn.MaNg ^ cdn.MaCDN = cddm.MaCDN ^ cddm.MaCDMo = dk.MaCDMo ^ dk.MSSV = sv.MSSV

sv.MaNg cdn.MaNg Cui THM ChuyenDeNganh ChuyenDe DuocMo SinhVien DangKy + SA - (MaNg) - (MaCDN) - (MaNg) + XA + + + -

Trang 14

ti: Qun l ng k chuyn

6.3 Lp bng tm nh hng tng hp


Nganh T S X ChuyenDe T S X T ChuyenDe Nganh S X T + R8 HocKy S (Nam, HocKy) X T ChuyenDe DuocMo S X T SinhVien S X T DangKy S X

R9

- (MaHKy)

(MaCDMo) (MaCDMo)

R10

+ (SLSVToiDa) (MaNg)

R11

(SoSV)

R12

+ (MaNg)

- (MaCDN)

+ (MaNg)

Trang 15

ti: Qun l ng k chuyn

--Trigger cho sa s lng sinh vin ca mt ngnh (R11) create trigger trgNganhUpd on Nganh for update as begin if not update(SoSV) return update Nganh set SoSV = (select count(MSSV) from SinhVien where SinhVien.MaNg=Nganh.MaNg) end

6.4 Vit Script

--Trigger cho bng Hc k (R8) create trigger trgHocKyInsUpd on HocKy for insert, update as begin declare @nam int, @hk int, @daco int select @nam=Nam, @hk=HocKy from inserted select @daco=count(MaHKy) from HocKy where Nam=@nam and HocKy=@hk if (@daco > 1) begin raiserror ('Hc k %d ca nm %d c', 16, 1, @hk, @nam) rollback tran end end --Trigger khi sinh vin ng k mt chuyn mi --Sinh vin ch c ng k chuyn thuc ngnh hc ca mnh (R12) create alter trigger trgDangKyIns on DangKy for insert as begin declare @MSSV varchar(6), @MaCDM int, @MaNgSV varchar(4), @MaNgCD varchar(6) select @MSSV=MSSV, @MaCDM=MaCDMo from inserted select @MaNgSV=MaNg from SinhVien where MSSV=@MSSV select @MaNgCD=CDN.MaNg from ChuyenDeNganh CDN, ChuyenDeDuocMo CDDM where CDDM.MaCDMo=@MaCDM and CDN.MaCDN=CDDM.MaCDN if (@MaNgSV <> @MaNgCD) begin raiserror ('Bn khng th ng k chuyn thuc ngnh hc khc', 16, 1) rollback tran end end

Trang 16

You might also like