
- 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 có 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 là đ i t ng rules, t m d ch là 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à khi có cá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ữ ệ ố ạ ỉ ầ ị ộ ắ ớ ố ượ
và 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 và s l ng cu i kỳ ph i là d ngầ ổ ố ượ ậ ổ ố ượ ấ ố ượ ố ả ươ
(>0). Thay vì 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 lý và sau đó có 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 mà 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 có 2 cách đ có 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ệ ể ứ ề ệ ụ ắ ể ề ị ữ ệ ườ
là 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 vàộ ể ứ ồ ủ ộ ế ứ
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 có 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 là m t bi u th c lu n lý 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 -
Có th s d ng các toán t nh : LIKE, IN, BETWEEN AND nh là 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 giá 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õ 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 có 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 ng mà quy 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 có 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.