- 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 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 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 : h , tên, đ a ch , s đi n tho i. Đ ki u d li u đ dài l u tr các c tư ư
trong m i b ng 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 đ th kh c ph c đ c y u đi m này, b n th ượ ế
đ nh nghĩa ra các ki u d li u m i 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 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 d trên b n s l n l t t o ra các ki u d li u m i nh : 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 b n đã làm quen tr c đây trong ư ượ ướ
Microsoft SQL Server, b n hai cách đ 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, 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 trong Microsoft SQL Server.
Thông th ng đ i v i các ki u d li u 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 tên uddt_Soluong ki u d li u c s decimal l u ơ ư
tr t i đa 15 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 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 chúng 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 đ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 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 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 : tên ki u d li u do ng i dùng đ nh nghĩa 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 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. ượ