- 1 -
SQL Server 2000 : Quy t c ki m tra mi n giá tr d
li u (Rule)
Microsoft SQL Server cung c p m t đ i t ng tính năng ượ
ho t đ ng g n gi ng nh CHECK constraint, đ i t ng này ư ượ
dùng đ ki m tra giá tr d li u c a các c t bên trong b ng
ph i th a m t đi u ki n nào đó khi d li u b s a đ i ho c
thêm vào. Đó chính đ i t ng rules, t m d ch quy t c ượ
ki m tra mi n giá tr d li u.
1/- Khái ni m :
u đi m c a đ i t ng này là khicác quy t c mi n giá trƯ ượ
d li u gi ng nhau thì b n ch c n đ nh nghĩa ra m t quy t c m i trong đ i t ng rules ượ
sau đó ch đ nh áp d ng quy t c này cho các c t bên trong các b ng khác nhau ho c
các ki u d li u m i do b n đã đ nh nghĩa tr c đó. ướ
Ví d :
Trong c u trúc b ng TONKHO (t n kho), b t bu c giá tr d li u t i các c t s l ng ượ
đ u kỳ, t ng s l ng nh p, t ng s l ng xu t s l ng cu i kỳ ph i d ng ượ ượ ượ ươ
(>0). Thay b n c n ph i đ nh nghĩa 4 CHECK constraint riêng r bên trong c u trúc
b ng đ ki m tra các ràng bu c mi n giá tr t i các c t này thì b n ch c n đ nh nghĩa
ra m t quy t c ki m tra mi n giá tr d li u h p sau đó th áp d ng quy t c
đó cho các c t bên trong b ng TONKHO ho c hay h n b n s áp d ng quy t c đó cho ơ
đúng ki u d li u m i b n s s d ng cho các c t s l ng trong b ng d li u ượ
TONKHO.
2/- T o m i quy t c ki m tra mi n giá tr d li u :
Gi ng nh các đ i t ng khác trong Microsoft SQL Server, b n 2 cách đ th ư ượ
t o m i quy t c ki m tra mi n giá tr d li u. Các b c bên d i s h ng d n b n ướ ướ ướ
cách th c đ t o ra m t quy t c ki m tra mi n giá tr d li u m i b ng ti n ích
Enterprise Manager.
B c 1 :ướ
Kh i đ ng ti n ích Enterprise Manager, ch n ch c năng New Rule trong th c đ n ơ
t t sau khi nh n chu t ph i trên đ i t ng ượ Rules đ t o m i m t quy t c ki m tra
mi n giá tr d li u.
- 2 -
Ch n New Rule đ t o quy t c ki m tra
B c 2 :ướ
Trong màn hình đ nh nghĩa quy t c ki m tra mi n giá tr d li u l n l t ch đ nh các ượ
thu c tính liên quan đ n quy t c ki m tra d li u bao g m tên c a quy t c ki m tra d ế
li u, bi u th c đi u ki n áp d ng quy t c ki m tra mi n giá tr d li u, thông th ng ườ
m t bi u th c so sánh bao g m tên c a m t bi n hình th c, phép toán so sánh ế
m t giá tr /hàm.
Các thu c tính liên quan đ nq uy t c ki m tra ế
- 3 -
Sau cùng nh n OK đ l u l i quy t c ki m tra d li u m i v a đ nh nghĩa trên. Bây ư
gi trong c s d li u Qu n lý bán hàng s có thêm m t đ i t ng quy t c m i. ơ ượ
Ngoài ra b n cũng th t o m i quy t c ki m tra mi n giá tr d li u b ng l nh
CREATE RULE có cú pháp nh sau :ư
Cú pháp :
Trong đó :
Tên quy t c : tên quy t c ki m tra mi n giá tr d li u đ c t o m i, tên quy t c ượ
ki m tra này ph i là duy nh t trong m t c s d li u. ơ
Bi u th c : thông th ng m t bi u th c lu n ho c bi u th c so sánh g nườ
gi ng nh bi u th c đ c s d ng phía sau m nh đ ư ượ WHERE trong các câu l nh truy
v n. Bi u th c này g m có 3 thành ph n : tên bi n hình th c (ph i b t đ u b ng ký t ế
@), toán t so sánh, giá tr so sánh. Trong đó tên bi n hình th c chính là tên dùng đ ch ế
đ nh giá tr đ i di n cho c t d li u mà quy t c s áp d ng ki m tra.
Ví d :
Đ t o quy t c ki m tra mi n giá tr d li u c t s l ng ph i d ng. B n th c hi n ượ ươ
câu l nh CREATE RULE nh sau :ư
Ví d :
Đ t o quy t c ki m tra mi n giá tr d li u c t đ n v tính c a các v t t ch thu c ơ ư
trong các t : cái, b , kg, m2, m3. B n th c hi n câu l nh CREATE RULE nh sau :ư
L u ý :ư
- 4 -
th s d ng c toán t nh : LIKE, IN, BETWEEN AND nh các phép toán t ư ư
so sánh trong khi xây d ng bi u th c dùng đ ki m tra mi n giá tr d li u. Trong bi u
th c này không th tham chi u đ n các c t khác bên trong b ng và cũng không th đ a ế ế ư
ra các quy t c ki m tra ph c t p khác.
Ví d :
B ng đ i t ng quy t c ki m tra mi n giá tr d li u, b n không th nào t o ra m t ượ
quy t c nh sau : giá tr c a c t t ng s l ng xu t trong b ng TONKHO c a các v t ư ượ
t trong m t tháng b ng v i t ng các g tr t i c t s l ng xu t trong b ngư ượ
CTPXUAT (chi ti t phi u xu t) c a các v t t t ng ng trong tháng đó. B n s t oế ế ư ươ
ra các quy t c ki m tra tính toán ph c t p d ng này b ng đ i t ng ượ Trigger trong
b ng d li u.
3/- Áp d ng quy t c ki m tra mi n giá tr d li u :
Sau khi t o ra các quy t c ki m tra mi n giá tr d li u b ng ti n ích Enterprise
Manager ho c câu l nh CREATE RULE trong c a s Query Analyzer, các quy t c này
v n ch a ho t đ ng, ch a th th c hi n ki m tra mi n giá tr d li u cho đ n khi nào ư ư ế
b n ch đ nh ràng s áp d ng các quy t c đó c th vào nh ng c t nào trong b ng
ho c nh ng ki u d li u do ng i dùng đ nh nghĩa. Ngay sau khi áp d ng quy t c ườ
ki m tra mi n giá tr d li u cho c t bên trong b ng, các quy t c này ch hi u l c
đ i v i các dòng d li u khi thêm m i ho c khi s a đ i các dòng d li u hi n đang có
bên trong b ng.
Các b c bên d i s h ng d n b n cách th c đ áp d ng m t quy t c ki m traướ ướ ướ
mi n giá tr d li u mà b n đã t o tr c đó vào m t c t trong b ng trong ti n ích ướ
Enterprise Manager.
B c 1 :ướ
Kh i đ ng ti n ích Enterprise Manager, ch n ch c năng Properties trong th c đ n t t ơ
sau khi nh n chu t ph i trên tênc a quy t c mu n áp d ng vào các c t trong b ng
ho c ki u d li u do ng i dùng đ nh nghĩa. ườ
- 5 -
Ch n quy t c ki m tra d li u áp d ng cho các c t
Trong màn hình thu c tính c a quy t c ki m tra, nh n nút Bind Columns đ ch n ra
các c t bên trong b ngquy t c ki m tra mi n giá tr d li u hi n hành s đ c áp ượ
d ng t i b c 2. ướ
B c 2 :ướ
Trong màn hình ch n các c t bên trong b ng, l n l t ch n ra b ng d li u, ch n ti p ượ ế
các c t trong b ng đó đ ch đ nh vi c áp d ng quy t c ki m tra mi n giá tr d
li u hi n hành cho các c t. Sau đó nh n nút Add.