Professional Documents
Culture Documents
Thutucluutru Ham Trigger NKhanh
Thutucluutru Ham Trigger NKhanh
TRIGGER
1
BIN CC B
T) *+,- .ET +-/ .ELECT 0123 4n5 0 56n 5i6 789 3+:
bin&
C+; >= ?+@A Bi +:@7 0Cn5 3D- bin 3+E nFA 78:n5 AC7
7+D 7G3 +:H3 AC7 "I 3, 3+J- "#n+ *+-i b6: bin 0,
K
BIN CC B (TT) GN GI TR CHO BIN
12 '(0
Modular programming:
Mt thu tuc c th phn thnh cc thu tuc nho hon, cc thu tuc
ny c th c dng chung gia cc thu tuc khc-~giam thoi
gian thit k v thuc thi cc thu tuc ng thoi cung d quan ly v
g ri.
Su nht qun.
Nng cao an ton bao mt. C th chi ra quyn thuc thi cho cc
thu tuc v vy n thuc hin ng tc vu ngoi dng.
V
!NH NGH"A TH TC LU TR B#NG
EM
W
!NH NGH"A TH TC LU TR B#NG EM
(TT)
Tn thu tuc
Ni dung thu tuc
(thn thu tuc)
1X
T$O TH TC LU TR B#NG T-%&L
Khi thu tuc trn c tao ra, thuc hin c hai yu cu trn qua loi
goi thu tuc:
Nu loi goi thu tuc c thuc hin bn trong mt thu tuc khc,
bn trong mt trigger hay kt hp voi cc cu lnh SQL khc, ta
su dung c php nh sau:
ELEC$UTE' Y7n_7+D_7G3Z $Y-n+_[3+_33_0\i_[\Z'
vdu:
1U
CA %D ANG BIN TRONG TH TCE
CREATE PROC spVidu(malop1 CHAR(4),malop2
CHAR(4))
AS
DECLARE tenlop1 NVARCHAR(30)
DECLARE namnhaphoc1 INT
DECLARE tenlop2 NVARCHAR(30)
DECLARE namnhaphoc2 INT
SELECT tenlop1tenlop,namnhaphoc1namnhaphoc
FROM lop WHERE malopmalop1
SELECT tenlop2tenlop, namnhaphoc2namnhaphoc
FROM lop WHERE malopmalop2
PRINT tenlop1' nhap hoc nam 'str(namnhaphoc1)
print tenlop2' nhap hoc nam 'str(namnhaphoc2)
IF namnhaphoc1namnhaphoc2
PRINT 'Hai lop nhp hoc cung nm'
ELSE
PRINT 'Hai lop nhp hoc khac nm'
1V
GI TR TRF CG CA THAM %H TRONG TH
TC
Trong hp cn gi lai gia tri cua i s sau khi kt thuc thu tuc,
khai bao tham s cua thu tuc theo cu phap:
tnthams kiudliu OUTPUT
Hoc:
tnthams kiudliu OUT
Trong loi goi thu tuc, sau i s c truyn cho thu tuc, cung
phai chi inh thm tu khoa OUTPUT (hoc OUT)
CREATE PROCEDURE spConghaiso(
a INT,
b INT,
c INT OUTPUT)
AS
SELECT cab
1W
GI TR TRF CG CA THAM %H TRONG TH
TC (TT)
sptestdeault
Cho bit ho tn cua cac sinh vin lop @in NLO sinh tai 7u:
Cho bit ho tn cua cac sinh vin sinh tai Hgh) .n:
sptestDeault noisinhN'Ngh An
Cho bit ho tn cua cac sinh vin lop @in NLP sinh tai a
Nng:
Cp:
Ngoi pht trin CSDL hoc ngoi quan tri h thng vit
thu tuc chay cc nhim vu quan tri thng thong, hoc
ng dung cc lut giao dich phc tap. Thu tuc lu tr
cha cc thao tc hoc cc cu lnh truy vn d liu.
Ham tra v mt gia tri thng qua tn ham cn thu tuc thi khng.
Ham gm 3 loai:
Ham v hong
(X
HM
Qui tc:
Trong phn thn cua ham chi co duy nht mt cu lnh RETURN
xac inh gia tri tra v cua ham thng qua duy nht mt cu lnh
SELECT (khng su dung bt ky cu lnh nao khac trong phn
thn cua ham).
(O
HM HM C8I GI TR TRF CG L A LIU NI<U
BFNG (TT)
Lu y:
Cu lnh:
SELECT FROM dbo.uncTongSV(25)
Cn cu lnh:
SELECT FROM dbo.uncTongSV(0)
Cho ta bit tng s sinh vin hin co (tt ca cac khoa) cua mi
khoa
K1
TRIGGER TRIGGER L GOP
Khi tao ra, tham gia vao transaction khoi tao boi cu lnh cp
nht d liu tong ng
K2
CC XD LQ BJN TRONG TRIGGER
CREATEALTERDROP
GRANDREVOKE
KK
CC LO$I TRIGGER
Chay sau cac hanh ng kim tra d liu cua cac Rule, Constraint
INSTEAD OF trigger
Inserted
Deleted
Tn bang
Cu phap
DROP TRIGGER Tn_)rigger
OX
%DA NI AUNG TRIGGER
Sua ni dung
ALTER TRIGGER Tn_Trigger ON Tn_bng
FOR INSERT [, UPDATE [,DELETE ]]
AS
[DECLARE i!n_"#"_b$]
C%"_&'n(
O1
TRIGGER LSNG NHAU
Instead O trigger khng phat sinh lai trn chinh bang ma no lin
kt
S cp lng ti a
32 cp
Khoa ngoai, Min gia tri, Lin thuc tinh trong cung mt bang
I Else
I Exists
Raiserror
Rollback Tran
OK
NHI HK BU MTU TIN
Tinh lai cac ct 'tinh toan' trong cac bang lin quan
Trigger Instead o