Professional Documents
Culture Documents
Ch 1
Stored-Procedure & Trigger & Function
Mc ch
Table of Contents
1.
Stored-Procedure.............................................................................................. 2
1.1. Gii thiu........................................................................................................................................... 2
1.2. nh ngha ........................................................................................................................................ 3
1.3. C php............................................................................................................................................. 3
1.3.1. Lnh to Procedure .................................................................................................................. 3
1.3.2. Khai bo bin v gn gi tr cho bin, Ghi ch ...................................................................... 3
1.3.3. Bin dch v gi thc thi mt stored-procedure .................................................................... 3
1.3.4. Lnh cp nht Procedure ......................................................................................................... 4
1.3.5. Lnh xa Procedure.................................................................................................................. 4
1.4. V d .................................................................................................................................................. 4
2. Trigger.............................................................................................................. 5
2.1. Gii thiu........................................................................................................................................... 5
2.2. C php............................................................................................................................................. 5
2.2.1. Lnh to Trigger ....................................................................................................................... 5
2.2.2. Lnh xa Trigger ...................................................................................................................... 5
2.3. V d .................................................................................................................................................. 5
3. Cursor............................................................................................................... 6
3.1. C php............................................................................................................................................. 6
3.2. V d .................................................................................................................................................. 6
4. Function ........................................................................................................... 8
4.1. C php............................................................................................................................................. 8
4.2. V d .................................................................................................................................................. 8
5. Bi tp .............................................................................................................. 9
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin
1. Stored-Procedure
1.1. Gii thiu
Khi chng ta to mt ng dng vi Microsoft SQL Server, ngn ng lp trnh Transact-SQL l ngn ng chnh
giao tip gia ng dng v database ca SQL Server. Khi chng ta to cc chng trnh bng Transact-SQL, hai
phng php chnh c th dng lu tr v thc thi cho cc chng trnh l:
-
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin
1.2. nh ngha
Mt Stored procedure c nh ngha gm nhng thnh phn chnh sau:
-
Tn ca stored procedure
Cc tham s
Thn ca stored procedure: bao gm cc lnh ca Transact-SQL dng thc thi procedure.
Mt stored procedure c to bng lnh Create Procedure, v c th thay i bng cch dng lnh Alter
Procedure, v c th xa bng cch dng lnh Drop Procedure trong lp lnh ca Transact SQL
1.3. C php
1.3.1.
Lnh to Procedure
CREATE PROCEDURE procedure_name
{@parameter data_type input/output }/*cc bin tham s vo
AS
Begin
[khai bo cc bin cho x l]
{Cc cu lnh transact-sql}
End
Ghi ch:
o Trong SQL Server, c th ghi tt mt s t kha m tn c chiu di hn 4 k t. V
d: c th thay th Create Procedure bng Create Proc.
o
1.3.2.
ra*/
Tn hm, tn bin trong SQL Server khng phn bit hoa thng.
1.3.3.
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin
1.3.5.
Lnh xa Procedure
DROP PROCEDURE
procedure_name
1.4. V d
-
int out
To stored procedure lit k nhng thng tin ca u sch, thng tin ta sch v s lng sch
hin cha c mn ca mt u sch c th (ISBN).
CREATE PROCEDURE sp_ThongtinDausach
@isbn int
AS
Begin
SELECT tuasach, tacgia, ngonngu, bia, trangthai, count(*)
FROM dausach ds, tuasach ts, cuonsach cs
WHERE
ds.ma_tuasach = ts.ma_tuasach AND
ds.isbn = cs.isbn AND
ds.isbn = @isbn AND
tinhtrang = yes
GROUP BY tuasach, tacgia, ngonngu, bia, trangthai
End
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin
2. Trigger
2.1. Gii thiu
Trigger l mt trng hp c bit ca store procedure, n s c hiu lc khi chng ta thay i d liu trn mt
bng d liu c th, hoc cc x l lm thay i d liu ca cc lnh: insert, update, delete. Trigger c th cha
cc lnh truy vn t cc bng khc hoc bao gm nhng lnh SQL phc tp.
Mt s thun li khi s dng trigger:
Trigger chy mt cch t ng: chng c kch hot ngay tc th khi c s thay i d liu
trn bng d liu.
Trigger c th thc hin cascade khi vic thi hnh c nh hng n nhng bng lin quan.
Trigger c nhng hiu lc t b hn ch hn so vi rng buc gi tr ngha l c th rng buc
tham chiu n nhng ct ca nhng bng d liu khc.
Khi trigger c kch hot bi 1 lnh Transact-SQL insert thm mt b mi vo bng AAA th b
mi ny c lu tm thi vo mt bng tm c tn l inserted c cng cu trc vi bng AAA.
Khi kt thc trigger ny th b d liu mi tht s lu xung CSDL.
Tng t i vi lnh delete, cc b d liu b xa s chuyn tm vo bng tm deleted.
2.2. C php
2.2.1.
Lnh to Trigger
Create Trigger trigger_name on table_name
For
[insert,update,delete]
As
Begin
{Khai bo cc bin x l}
{Cc lnh Transact-SQL}
End
2.2.2.
Lnh xa Trigger
Drop Trigger trigger_Name
2.3. V d
To trigger cho thao tc xa mt u sch trong bng Muon.
CREATE TRIGGER tg_delMuon ON muon
FOR delete
AS
Begin
DECLARE @isbn int, @ma_cuonsach smallint
SELECT @isbn = isbn, @ma_cuonsach = ma_cuonsach
FROM deleted
UPDATE cuonsach
SET
tinhtrang = yes
WHERE isbn = @isbn AND ma_cuonsach = @ma_cuonsach
End
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin
3. Cursor
Cursor l mt kiu d liu c bit, c dng lu tr kt qu ca cu lnh SELECT trong qu trnh lp
trnh.
3.1. C php
Lnh khai bo bin cursor:
DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSOR FOR Select_statement
Lnh m cursor:
OPEN cursor_name
Kim tra kt qu ly d liu t cursor (kim tra ngay sau lnh FETCH NEXT):
ng cursor:
CLOSE cursor_name
DEALLOCATE cursor_name
3.2. V d
V d 1 : S dng cursor duyt d liu tr v t mt cu select
--Khai bo bin
Declare @btt int, @btt2 int
declare @c cursor
set @c = cursor for Select tt,tt2 From bang1 Where [iu kin]
--M cursor
open @c
fetch next from @c into @btt, @btt2
--Duyt cursor
while @@fetch_status = 0
begin
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin
4. Function
Trong SQL Server ta c th vit hm v ly gi tr tr v. Cc dng hm c th vit nh sau :
4.1. C php
CREATE FUNTIONS function_name
( [@parameter_name parameter_data_type] )
RETURNS [return Data-type] /*Returns c s */
AS
Begin
return [scalar value/select command]
End
4.2. V d
Vit hm tnh tui ca ngi c nm sinh l @ns :
--Xa hm nu c
if object_id('fTuoi','FN') is not null
drop function fTuoi
go
--To hm fTuoi
Create function fTuoi (@ns int)
Returns int
As
Begin
return year(getdate()) - @ns
end
go
--Bin dch hm vi F5
--Kim tra th hm
print dbo.fTuoi(1982) --phi c dbo.
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin
5. Bi tp
1. Lm cc bi tp v Stored-procedure, Cursor, Trigger trong file Bai_tap_Chu_de_1_-
_StoreProcedure_-_Trigger_-_Function.pdf
2. Lm cc Store-procedure v trigger trong mc 4.1 4.13; 5.1 5.4 lin quan n CSDL Qun l th
vin trong file Dac_ta_CSDL_Quan_ly_thu_vien.pdf
B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin