
- 1 -
SQL Server 2000 : Ki u d li u do ng i dùng đ nhể ữ ệ ườ ị
nghĩa
Gi ng nh nh ng ngôn ng l p trình khác, Microsoft SQLố ư ữ ữ ậ
Server cho phép b n có th đ nh nghĩa ra các ki u d li u m iạ ể ị ể ữ ệ ớ
d a trên các ki u d li u c s c a Microsoft SQL Server.ự ể ữ ệ ơ ở ủ
1/- Đ nh nghĩa :ị
Các ki u d li u m i này đ c g i là ki u d li u do ng iể ữ ệ ớ ượ ọ ể ữ ệ ườ
dùng đ nh nghĩa. M c đích c a vi c t o ra các ki u d li uị ụ ủ ệ ạ ể ữ ệ
do ng i dùng đ nh nghĩa là đ đ m b o cho c u trúc d li uườ ị ể ả ả ấ ữ ệ
bên trong c s d li u đ c nh t quán và d s a đ i.ơ ở ữ ệ ượ ấ ễ ử ổ
Ví d :ụ
Trong m t c s d li u g m có các b ng : nhân viên, khách hàng, nhà cung c p.ộ ơ ở ữ ệ ồ ả ấ
Trong t ng b ng này l i có các c t mà d li u c a chúng l u tr hoàn toàn gi ng nhauừ ả ạ ộ ữ ệ ủ ư ữ ố
nh là : h , tên, đ a ch , s đi n tho i. Đ ki u d li u và đ dài l u tr các c tư ọ ị ỉ ố ệ ạ ể ể ữ ệ ộ ư ữ ở ộ
trong m i b ng là gi ng nhau b t bu c b n ph i ng m nh , cách làm vi c này khôngỗ ả ố ắ ộ ạ ả ầ ớ ệ
khoa h c l m. Ngoài ra v sau khi có nhu c u s a đ i c u trúc các b ng s d dàngọ ắ ề ầ ử ổ ấ ả ẽ ễ
làm m t đi tính nh t quán v c u trúc gi a các b ng trong cùng ng d ng.ấ ấ ề ấ ữ ả ứ ụ
Bên trong Microsoft SQL Server đ có th kh c ph c đ c y u đi m này, b n có thể ể ắ ụ ượ ế ề ạ ể
đ nh nghĩa ra các ki u d li u m i và sau đó khi t o c u trúc b ng m i ho c s a đ iị ể ữ ệ ớ ạ ấ ả ớ ặ ử ổ
c u trúc b ng thì ph i ch rõ ra ki u d li u c a các c t bên trong b ng là nh ng ki uấ ả ả ỉ ể ữ ệ ủ ộ ả ữ ể
m i v a đ nh nghĩa này.ớ ừ ị
Ví d :ụ
Ti p theo ví d trên b n s l n l t t o ra các ki u d li u m i nh là : ki u d li uế ụ ạ ẽ ầ ượ ạ ể ữ ệ ớ ư ể ữ ệ
h , ki u d li u tên, ki u d li u đ a ch … đ ch đ nh cho các c t h , tên, đ a chọ ể ữ ệ ể ữ ệ ị ỉ ể ỉ ị ộ ọ ị ỉ
trong các b ng d li u : nhân viên, khách hàng, nhà cung c p.ả ữ ệ ấ
2/- T o m i ki u d li u do ng i dùng đ nh nghĩa :ạ ớ ể ữ ệ ườ ị
Gi ng nh vi c t o m i các đ i t ng khác mà b n đã làm quen tr c đây trongố ư ệ ạ ớ ố ượ ạ ướ
Microsoft SQL Server, b n có hai cách đ có th t o m i ki u d li u do ng i dùngạ ể ể ạ ớ ể ữ ệ ườ
đ nh nghĩa. Các b c bên d i s h ng d n b n cách th c t o ra ki u d li u m iị ướ ướ ẽ ướ ẫ ạ ứ ạ ể ữ ệ ớ
do ng i dùng đ nh nghĩa b ng ti n ích Enterprise Manager.ườ ị ằ ệ
B c 1 :ướ

- 2 -
Kh i đ ng ti n ích Enterprise Manager, ch n ch c năng ở ộ ệ ọ ứ New User Defined Data Type
… trong th c đ n t t sau khi nh n chu t ph i trên đ i t ng ự ơ ắ ấ ộ ả ố ượ User Defined Data
Types đ t o m i ki u d li u do ng i dùng đ nh nghĩa dùng chung cho các b ngể ạ ớ ể ữ ệ ườ ị ả
trong c s d li u.ơ ở ữ ệ
Ch n New User Defined Data Typeọ
B c 1 :ướ
Trong màn hình đ nh nghĩa ki u d li u m i l n l t ch đ nh các thu c tính liên quanị ể ữ ệ ớ ầ ượ ỉ ị ộ
đ n ki u d li u m i bao g m : tên c a ki u d li u m i, ki u d li u c s , chi uế ể ữ ệ ớ ồ ủ ể ữ ệ ớ ể ữ ệ ơ ở ề
dài d li u, có cho phép b tr ng d li u khi thêm m i không. Sau cùng nh n ữ ệ ỏ ố ữ ệ ớ ấ OK để
l u l i ki u d li u m i đ nh nghĩa.ư ạ ể ữ ệ ớ ị

- 3 -
Các thu c tính liên quan đ n ki u d li u m iộ ế ể ữ ệ ớ
Ngoài ra b n cũng có th t o m i ki u d li u do ng i dùng đ nh nghĩa b ng th t cạ ể ạ ớ ể ữ ệ ườ ị ằ ủ ụ
n i t i h th ng sp_addtype khi gõ l nh trong c a s ộ ạ ệ ố ệ ử ổ Query Analyzer.
Cú pháp :
Trong đó :
• Tên ki u d li u m i :ể ữ ệ ớ tên ki u d li u do ng i dùng đ nh nghĩa, tên ki u d li uể ữ ệ ườ ị ể ữ ệ
m i ph i duy nh t trong m t c s d li u.ớ ả ấ ộ ơ ở ữ ệ
• Ki u d li u c s :ể ữ ệ ơ ở tên c a các ki u d li u hi n có trong Microsoft SQL Server.ủ ể ữ ệ ệ
Thông th ng đ i v i các ki u d li u có ch đ nh đ r ng d li u thì b t bu c ph iườ ố ớ ể ữ ệ ỉ ị ộ ộ ữ ệ ắ ộ ả
có m và đóng nháy.ở
• NULL Ι NOT NULL : có cho phép ho c không cho phép c t b tr ng d li u khi l uặ ộ ỏ ố ữ ệ ư
tr . M c đ nh cho phép c t b tr ng d li u khi thêm m i d li u.ữ ặ ị ộ ỏ ố ữ ệ ớ ữ ệ
Ví d :ụ

- 4 -
Đ đ nh nghĩa ki u d li u có tên uddt_Soluong có ki u d li u c s là decimal l uể ị ể ữ ệ ể ữ ệ ơ ở ư
tr t i đa 15 ký s trong đó có 2 s l , không cho phép c t đ tr ng d li u khi l uữ ố ố ố ẻ ộ ể ố ữ ệ ư
tr . B n s th c hi n câu l nh nh sau :ữ ạ ẽ ự ệ ệ ư
Ví d :ụ
Sau đó khi t o l p c u trúc b ng TONKHO (t n kho) trong đó có 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ỳ. B n s s d ngổ ố ượ ậ ổ ố ượ ấ ố ượ ố ạ ẽ ử ụ
ki u d li u m i v a đ nh nghĩa trên cho các c t này b i vì chúng có cùng chungể ữ ệ ớ ừ ị ở ộ ở
m t ki u d li u là ki u s l ng (uddt_Soluong).ộ ể ữ ệ ể ố ượ
3/- Xóa ki u d li u do ng i dùng đ nh nghĩa :ể ữ ệ ườ ị
Khi m t ki u d li u do ng i dùng đ nh nghĩa trong c s d li u không còn dùngộ ể ữ ệ ườ ị ơ ở ữ ệ
đ n n a, b n có th h y b nó đi. Tuy nhiên n u m t ki u d li u do ng i dùngế ữ ạ ể ủ ỏ ế ộ ể ữ ệ ườ
đ nh nghĩa còn đ c s d ng ít nh t cho m t c t bên trong m t b ng nào đó thì b n sị ượ ử ụ ấ ộ ộ ộ ả ạ ẽ
không th nào h y đ c nó.ể ủ ượ
Đ h y m t ki u d li u do ng i dùng đ nh nghĩa, b n ch n ch c năng ể ủ ộ ể ữ ệ ườ ị ạ ọ ứ Delete trên
th c đ n t t sau khi nh n chu t ph i vào tên ki u d li u do ng i dùng đ nh nghĩaự ơ ắ ấ ộ ả ể ữ ệ ườ ị
mu n h y b trong ti n ích Enterprise Manager và xác nh n đ ng ý h y b ng cáchố ủ ỏ ệ ậ ồ ủ ằ
ch n nút ọDrop All trong màn hình h y b các đ i t ng bên trong c s d li u c aủ ỏ ố ượ ơ ở ữ ệ ủ
Microsoft SQL Server.

- 5 -
Xác nh n h y b ki u d li u m iậ ủ ỏ ể ữ ệ ớ
Ngoài ra b n cũng có th s d ng th t c n i t i h th ng có tên sp_droptype đ h yạ ể ử ụ ủ ụ ộ ạ ệ ố ể ủ
b ki u d li u do ng i dùng đ nh nghĩa trong c a s ỏ ể ữ ệ ườ ị ử ổ Query Analyzer.
Cú pháp :
Trong đó :
• Tên ki u d li u :ể ữ ệ là tên ki u d li u do ng i dùng đ nh nghĩa có trong c s dể ữ ệ ườ ị ơ ở ữ
li u hi n hành mu n h y b (không còn dùng n a trong c s d li u).ệ ệ ố ủ ỏ ữ ơ ở ữ ệ
Ví d :ụ
H y ki u d li u uddt_Soluong trong c s d li u QLBanHang.ủ ể ữ ệ ơ ở ữ ệ
Tuy nhiên khi đó h th ng s xu t hi n thông báo l i b i vì các c t s l ng trongệ ố ẽ ấ ệ ỗ ở ộ ố ượ
b ng TONKHO đang s d ng ki u d li u này nên không th h y đ c.ả ử ụ ể ữ ệ ể ủ ượ

