- 1 -
SQL Server 2000 : Khái ni m v th t c n i t i
Gi ng nh ý nghĩa c a vi c s d ng th t c dùng chung ư
trong nh ng ngôn ng l p trình khác, th t c n i t i trong
Microsoft SQL Server dùng đ t o ra nh ng x th ng ườ
dùng bên trong ng d ng nh m đ chia nh các x theo
hình thi t k x top-down, m t cách làm giúp chia nhế ế
m t x ph c t p thành các x lý nh d n, đ n gi n hóa các ơ
x lý ph c t p.
1/- Th t c n i là gì ?
Th t c n i t i th t s m t t p h p ch a các dòng l nh, các bi n các c u trúc ế
đi u khi n bên trong ngôn ng Transaction-SQL dùng đ th c hi n m t hành đ ng nào
đó, t t c các n i dung c a th t c n i t i s đ c l u tr t i c s d li u c a ượ ư ơ
Microsoft SQL Server.
Các nét đ c tr ng c a m t th t c n i t i cũng hoàn toàn gi ng các th t c trong các ư
ngôn ng l p trình khác : tên th t c n i t i, tham s truy n giá tr vào và tham s đón
nh n giá tr tr ra. Ngoài ra bên trong m t th t c n i t i b n cũng đ c phép g i th c ư
thi m t th t c n i t i khác đã có tr c đó. Ph m vi ho t đ ng c a các th t c n i t i ướ
do ng i dùng t o ra ch tính c c b bên trong m t c s d li u l u tr th t cườ ơ ư
đó.
M t nét riêng bi t c a th t c n i t i nó th đ c g i th c hi n trong môi ượ
tr ng không ph i Microsoft SQL Server. Khi xây d ng giao di n màn hình trên cácườ
ngôn ng l p trình khác nhau, b n v n th g i th c hi n các th t c n i t i m t
cách d dàng.
Ngoài ra do th t c n i t i đ c l u tr v t lý trong c s d li u c a Microsoft SQL ượ ư ơ
Server, nên các th t c n i t i s đ c th c thi khá nhanh b i n i dung bên trong ượ
th t c n i t i đã đ c phân tích pháp các l nh khi chúng đ c t o m i. L n đ u ượ ượ
tiên khi th t c n i t i đ c g i th c hi n thì n i dung các l nh bên trong th t c n i ượ
t i s đ c biên d ch l u l i trên b nh , k t các l n k ti p thì th t c n i t i ượ ư ế ế
s đ c th c thi càng nhanh h n (vì các mã l nh đã đ c l u l i trên b nh ). Đây ượ ơ ượ ư
cũng m t trong nh ng do t i sao chúng ta nên s d ng th t c n i t i trong
Microsoft SQL Server đ th c thi các x lý tính toán.
2/- Các th t c n i t i h th ng :
Trong Microsoft SQL Server cung c p cho chúng ta m t s l n các th t c n i t i h
th ng dùng đ th c hi n các x trong vi c qu n tr c s d li u. M t th t c n i ơ
t i h th ng luôn luôn đ c b t đ u b ng ch ượ sp_ h u h t t t c các th t c n i ế
t i h th ng đ c l u tr bên trong c s d li u ượ ư ơ Master.
- 2 -
Vi c làm quen s d ng nhu n nhuy n các th t c h th ng s giúp b n hi u
thêm v cách t ch c c u trúc các b ng h th ng bên d i Microsoft SQL Server. ướ
Ngoài ra còn giúp b n bi t đ c các x n bên d i ti n ích Enterprise Manager ế ượ ướ
sau khi b n th c hi n các hành đ ng ch n l a trong ti n ích đ h a này.
Ví d :
B n th t o m i m t ng i dùng tên "TTTH", v i m t kh u "T3HNVC" cho ườ
phép truy c p vào c s d li u ơ NorthWind c a Microsoft SQL Server b ng th t c
h th ng sp_addlogin nh sau :ư
Các bài liên quan đ n th t c n i t i h th ng ch h ng d n b n th c hi n vi c tri nế ướ
khai m t c s d li u trong Microsoft SQL Server. Do đó s không đ c p đ n các ơ ế
th t c n i t i h th ng c a Microsoft SQL Server ch trình bày cách th c t o ra
m t th t c do ng i dùng đ nh nghĩa đ th c hi n các x riêng bi t cho ng d ng ườ
c a b n. Trong các bài k ti p, khi đ c p đ n c m t th t c n i t i thì xem nh nói ế ế ế ư
đ n các th t c n i t i do ng i dùng đ nh nghĩa.ế ườ
3/- Các l i ích khi s d ng th t c n i t i :
B n nên xem xét th t k các l i ích khi s d ng th t c n i t i đ c t bên d i ượ ướ
đ có th áp d ng vào đúng các tr ng h p th c t trong khi xây d ng các ng d ng ườ ế
theo mô hình khách ch .
T c đ x c a các th t c n i t i s r t nhanh b i b n thân n i dung c a
các th t c n i t i đ c l u tr th c hi n ngay t i máy ch . H n th n a, các d ượ ư ơ ế
li u cũng đ c l u tr trên cùng máy ch nên không c n m t th i gian đ truy n d ượ ư
li u qua h th ng m ng cho các x bên trong th t c n i t i b i các x d
li u cùng đ c l u tr trên cùng m t v trí v t lý là máy ch . ư ư
Vi c t ch c phân chia các x thành hai n i khác nhau : ơ t i máy ch ho c
t i máy tr m s giúp các b n có th làm gi m th i gian xây d ng ng d ng. B i
b n thân m t th t c n i t i trong Microsoft SQL Server th đ c g i th c thi ượ
nhi u l n trên các màn hình khác nhau trong các ngôn ng l p trình khác nhau : Visual
Basic, C++, Delphi, …
Gi ng nh nh ng l i ích khi s d ng đ i t ng b ng o (View) ư ượ , b n th s
d ng th t c n i t i đ phân c p quy n h n (security) cho nh ng ng i s d ng v i ườ
các hành đ ng c p nh t d li u nh : thêm, s a, xóa d li u ho c xem ch quy n ư
xem n i dung c a các báo cáo.
- 3 -
SQL Server 2000 : Tham s bên trong th t c n i t i
Th t c n i t i r t h u ích trong hình khách ch ,
nh ng s tr nên hi u qu h n khi b n bi t cách s d ngư ơ ế
các tham s đi kèm v i nó. V i nh ng tham s này, b n th
truy n vào các giá tr c n thi t cho các x lý bên trong c a th ế
t c n i t i. Bên d i m t vài h ng d n b n c n ghi ướ ướ
nh khi s d ng tham s trong th t c n i t i :
• B n có th đ nh nghĩa ra m t ho c nhi u tham s có bên trong m t th t c n i t i.
Tên c a các tham s mà b n đ nh nghĩa ch ph m vi c c b bên trong th t c n i
t i. Chúng là các tham s hình th c.
Gi ng nh tên c a các tham s trong các ngôn ng l p trình khác, b n th đ t tên ư
tham s trong th t c n i t i m t cách g i nh và duy nh t.
• M t th t c đ c phép có t i đa 1024 tham s . ượ
1/- Tham s đ u vào :
Tham s đ u vào lo i tham s cho phép b n có th truy n vào các giá tr cho nh ng
x bên trong m t th t c n i t i. Các giá tr này th t c n thi t cho các hành đ ng ế
tính toán bên trong th t c n i t i.
Cú pháp :
Trong đó :
Tên tham s : tên tham s c a th t c ph i duy nh t trong th t c nên đ t tên
tham s m t cách g i nh .
Ki u d li u : ki u d li u c a tham s quy đ nh lo i d li u t ng ng đ c ươ ượ
truy n vào cho th t c.
- 4 -
Giá tr : giá tr m c đ nh đ c gán vào tham s khi tham s không đ c nh n giá tr ượ ượ
khi th t c đ c g i th c hi n. ượ
Ví d :
Đ xây d ng m t th t c n i t i tính t ng giá tr c a m t phi u xu t v t t c n có ế ư
m t tham s vào s phi u xu t v i ki u d li u chu i. B n th c hi n l nh ế
CREATE PROCEDURE có m t tham s vào nh sau : ư
G i th c hi n th t c trên và truy n vào giá tr cho tham s phi u xu t "X001" đ ế
tính ra t ng giá tr c a phi u xu t "X001". ế
Ho c có th ch đ nh t ng minh tên tham s và giá tr lúc g i th t c. ườ
K t qu tr v :ế
Ví d :
Đ xây d ng m t th t c n i t i tính ra s l ng đ t hàng c a m t v t t bên trong ượ ư
m t đ n đ t hàng hai tham s vào s đ t hàng v t t đ u ki u d li u ơ ư
là chu i. B n th c hi n l nh CREATE PROCEDURE có hai tham s vào nh sau : ư
- 5 -
G i th c hi n th t c đ tính ra s l ng đ t hàng c a v t t "DD02" trong đ n đ t ượ ư ơ
hàng "D001".
Ho c
Ho c
K t qu tr v :ế
Nh n xét :