- 1 -

SQL Server 2000 : Giá tr m c đ nh (Default)

ị ặ ị

Gi ng nh khái ni m DEFAULT constraint, đ i t

ng giá

ố ượ

ư

ị ặ ị

ị ặ ị

ạ ạ

ộ tr m c đ nh cho phép b n t o ra giá tr m c đ nh cho các c t i dùng đ nh nghĩa trong

d li u ho c các ki u d li u do ng

ể ữ ệ

ữ ệ

ườ

tr

ng h p khi thêm m i m u tin vào b ng mà giá tr t

i các

ườ

ị ạ

i dùng có th không cung c p.

c t đó ng ộ

ườ

1/- Khái ni m :ệ

ữ ệ ườ ố ị ị ặ ị ể ắ ơ ở ữ ệ ớ ằ ả ấ i dùng đ nh nghĩa ho c Cũng gi ng nh ki u d li u do ng ặ ư ể ườ quy t c ki m tra mi n giá tr d li u, giá tr m c đ nh th ng ị ữ ệ ề đ ề ữ ệ ủ c s d ng cho các c s d li u l n nh m đ m b o tính nh t quán v d li u c a ượ ử ụ ả các c t trong b ng. ộ ả

Ví d :ụ

ồ ấ ộ ạ ộ ơ ở ữ ệ ỗ ả ặ ủ ữ ệ ạ ộ ấ ắ ả ộ ở ể ữ ệ ị ạ ể ị ạ ộ ư Trong m t c s d li u g mc ó các b ng : khách hàng, nhà cung c p, nhân viên. ả i có c t website (công ty ho c cá nhân) dùng đ l u đ a ch trang Trong m i b ng l ỉ ị ể ư i c t này là web c a các khách hàng, nhà cung c p, nhân viên. Tuy nhiên d li u t ặ không b t bu c ph i có b i vì không ph i khách hàng nào, nhà cung c p nào ho c ấ ả i các c t này là nhân viên nào cũng có trang web riêng. Thay vì đ d li u hi nt h t ộ ch "NULL" khi ng ị i c t này thì b n s t o giá tr ạ ẽ ạ ườ ử ụ m c đ nh cho các c t này là chu i "ch a có". ộ i s d ng không đ a vào giá tr t ư ữ ặ ị ỗ

2/- T o m i giá tr m c đ nh : ị ặ ị ớ ạ

ố ể c bên d ể ứ ng d n b n cách th c ạ i s h ướ ẽ ướ ướ ẫ ạ ị ng khác trong Microsoft SQL Server, b n có 2 cách đ có th Gi ng nh các đ i t ư t o m i đ i t ị ặ ớ ố ượ ạ t o ra giá tr m c đ nh b ng ti n ích Enterprise Manager. ằ ạ ố ượ ng giá tr m c đ nh. Các b ệ ị ặ ị

B c 1 : ướ

ở ộ ệ New Default … trong th cự t sau khi nh n chu t ph i trên đ i t Kh i đ ng ti n ích Enterprise Manager, ch n ch c năng đ n t ả ơ ắ ứ ọ ng Default. ố ượ ấ ộ

- 2 -

Ch n New Default đ t o giá tr m c đ nh ị ặ ị ể ạ ọ

B c 2 : ướ

ị ặ ị ỉ ị ầ ượ ị ặ ặ ồ ị ị ị Trong màn hình đ nh nghĩa giá tr m c đ nh l n l t ch đ nh các thu c tính liên quan ộ đ n giá tr m c đ nh bao g m : tên c a giá tr m c đ nh, giá tr c th ho c tên hàm ế ị ụ ể ho c bi u th c tính toán làm giá tr m c đ nh. ặ ủ ị ặ ị ị ặ ứ ể

Các thu c tính liên quan đ n giá tr m c đ nh ị ặ ị ế ộ

ể ư ạ ị ặ i giá tr m c đ nh m i v a đ nh nghĩa. Lúc bây gi ớ ừ ị ị ạ ẽ ủ ả trong ờ ng giá tr m c đ nh ị ị ặ ộ ố ượ Sau cùng nh n ấ OK đ l u l c s d li u Qu n lý bán hàng c a b n s có thêm m t đ i t ơ ở ữ ệ m i v a t o. ớ ừ ạ

- 3 -

ị ặ ể ạ ằ ớ ị ệ CREATE DEFAULT Ngoài ra b n cũng có th t o m i giá tr m c đ nh b ng l nh ạ v i cú pháp nh sau : ớ ư

Cú pháp :

Trong đó :

c t o m i, tên giá tr m c đ nh này ị ặ ị ị ượ ạ ị ặ ớ ị tên giá tr m c đ nh đ • Tên giá tr m c đ nh : ị ặ ph i là duy nh t trong m t c s d li u. ộ ơ ở ữ ệ ả ấ

ể ể ứ là m t giá tr c th nào đó nh s , ngày, chu i ho c m t hàm, bi u ư ố ị ụ ể ặ ộ ỗ ộ • Bi u th c : th c tính toán. ứ

Ví d :ụ

ể ạ ị ặ ư ự ệ ệ ạ ạ ộ ỗ ị Đ t o giá tr m c đ nh cho các c t đi n tho i là chu i "Ch a có", b n th c hi n câu l nh ệ CREATE DEFAULT nh sau : ư

3/- Liên k t giá tr m c đ nh vào c t d li u : ộ ữ ệ ị ặ ị ế

ằ ạ ị ặ ệ ặ ư ế ẫ ị ỉ ạ ộ ữ ị ặ ẽ ộ ị ị ị ặ ế ườ ị ữ ế c áp d ng cho các c t khi thêm m i d li u mà ng ữ ệ ụ ườ ử ụ ớ ữ ệ ộ ệ Sau khi t o ra các giá tr m c đ nh b ngt i n ích Enterprise Manager ho c câu l nh CREATE DEFAULT, các giá tr m c đ nh này v n ch a ho t đ ng cho đ n khi nào b n ch đ nh rõ ràng nó s liên k t các giá tr m c đ nh vào nh ng c t nào trong b ng ả ạ ị i dùng đ nh nghĩa. Ngay sau khi liên k t, các giá tr ho c nh ng ki u d li u do ng ị ể ặ i s d ng không m c đ nh s đ ẽ ượ ặ ị cung c p thông tin t ấ i các c t đó. ộ ạ

i h ướ ướ ị ặ ị ứ ể ẫ ạ Các b ộ ộ ng d n b n cách th c đ liên k t giá tr m c đ nh vào m t c t ế trên b ng d li u trong ti n ích Enterprise Manager. ệ c bên d ữ ệ ướ ả

B c 1 : ướ

ệ ở ộ ứ ấ Properties trong th c đ n t ố ế ộ ị ườ ộ ị ể ọ ả ự ơ ắ Kh i đ ng ti n ích Enterprise Manager, ch n ch c năng t ọ sau khi nh n chu t ph i trên tên c a giá tr m c đ nh mu n liên k t vào các c t trong ị ặ ủ ộ ả i dùng đ nh nghĩa. Trong màn hình các thu c tính c a b ng ho c ki u d li u do ng ủ ể ả ặ ữ ệ ị ặ Bind Columns đ ch n ra các c t trong b ng mà giá tr m c giá tr m c đ nh, nh n nút ộ ấ ị ặ ị đ nh s liên k t vào. ế ẽ ị

- 4 -

ộ Ch n giá tr m c đ nh liên k t cho các c t ị ặ ị ế ọ

B c 2 : ướ

t ch n b ng d li u, các c t trong b ng đó ả ọ ả ộ ữ ệ Add. Trong màn hình ch n các c t, b n l n l ộ ọ đ liên k t giá tr m c đ nh vào các c t. Sau đó nh n nút ị ặ ị ể ạ ầ ượ ộ ế ấ

Ch n các c t đ liên k t v i giá tr m c đ nh ị ặ ị ộ ể ế ớ ọ

B c 3 : ướ

- 5 -

ấ ạ ọ ộ ế c đó. B n có th quay l Apply đ liên k t giá tr m c đ nh cho các c đó i th c hi n l c 2 và b c 3 tr i b ướ ạ ạ ể ệ ạ ướ ị ặ ị ướ ướ ự Trong màn hình ch n các c t, b n nh n nút c t đã ch n tr ể ọ ộ cho các c t n m bên các b ng khác. ộ ằ ả

ọ Ch n Apply đ liên k t giá tr m c đ nh cho c t đã ch n ị ặ ị ế ể ọ ộ

B c 4 : ướ

ể ọ ộ i màn hình các thu c tính ấ OK đ k t thúc quá trình liên k t các giá tr m c đ nh vào ị ặ ể ế ị ặ ộ ị ạ ế ị Sau cùng nh n ấ OK đ đóng màn hình ch n các c t. Quay l c a giá tr m c đ nh, nh n ủ các c t.ộ

L u ý : ư

c đó b ng m nh đ ộ ố ớ ị ặ ị ướ ằ ệ c phép liên k t đ i t ế ố ượ ề DEFAULT ị ặ ng giá tr m c Đ i v i các c t đã có đ nh nghĩa giá tr m c đ nh tr ho c ặ DEFAULT constraint thì b n không đ đ nh vào các c t này b i vì hành đ ng này là d th a. ở ị ị ượ ư ừ ạ ộ ộ

ế ể ả ặ ộ ị i dùng đ nh nghĩa b ng th t c n i t i h th ng sp_bindefault. Ngoài ra b n cũng có th liên k t giá tr m c đ nh cho các c t trong b ng ho c các ị ặ ki u d li u do ng ằ ạ ể ữ ệ ủ ụ ộ ạ ệ ố ườ ị

Cú pháp :

- 6 -

Trong đó :

• Tên m c đ nh : c t o ra tr c đó. ặ ị tên giá tr m c đ nh đã đ ị ặ ị ượ ạ ướ

ng : tên c t c a b ng ho c tên ki u d li u do ng ộ ủ ả ặ i dùng đ nh nghĩa. ị ể ng n u s d ng tên c a c t trong b ng thì b t bu c ph i theo đ nh d ng : ị ả ữ ệ ắ ườ ả ủ ộ ạ ộ • Tên đ i t ố ượ Thông th ườ tên_b ng.tên_c t. ả ế ử ụ ộ

Ví d :ụ

ể ộ ị Đ liên k t giá tr m c đ nh v a t o def_Dienthoai vào c t Dienthoai có trong b ng ả ị ặ NHACC, b n th c hi n câu l nh nh sau : ệ ừ ạ ư ế ạ ự ệ

ờ ị ặ ị ấ khi thêm m t nhà cung c p m i vào b ng NHACC thì giá tr m c đ nh c a c t ủ ộ ả ạ i s d ng b tr ng c t d li u đi n tho i ạ ẽ ườ ử ụ ộ ữ ệ ỏ ố ư ệ Bây gi ộ ớ đi n tho i s là ch "Ch a có" khi ng ữ ệ (Dienthoai).

Khi đó n u b n thêm nhà cung c p C07 v i thông tin nh sau : ư ế ấ ạ ớ

Thì giá tr t i c t đi n tho i c a nhà cung c p C07 s là ch "Ch a có". ị ạ ộ ạ ủ ữ ư ệ ẽ ấ

ế ả ặ ố ể ữ i h th ng có ộ ả ử ụ ủ ụ ộ ạ ệ ố ườ ệ ị Khi b n không mu n liên k t giá tr m c đ nh vào các c t trong b ng ho c các ki u d ị ặ ị ạ i dùng đ nh nghĩa thì b t bu c ph i s d ng th t c n i t li u do ng ộ ắ tên là sp_unbindefault đ làm đi u đó. ể ề

Cú pháp :

Trong đó :

ng : ể ặ ữ ệ ng tên c a c t b t bu c ph i theo đ nh d ng là : • Tên đ i t ố ượ Thông th ườ tên c t c a b ng ho c tên ki u d li u do ng ủ ộ ắ ộ ủ ả ộ i dùng đ nh nghĩa. ị ộ . tên_b ng.tên_c t ườ ả ả ạ ị

Ví d :ụ

ị ặ ế ệ ạ ả ộ ướ c Đ h y b giá tr m c đ nh đã liên k t cho c t đi n tho i trong b ng NHACC tr đây, b n th c hi n câu l nh sau : ệ ể ủ ạ ỏ ự ị ệ

- 7 -

4/- Xóa giá tr m c đ nh : ị ặ ị

ị ữ ệ ử ụ ể ơ ở ữ ệ ộ ể ủ ạ ỏ ế ấ c nó. Khi giá tr m c đ nh trong c s d li u không còn s d ng cho các ki u d li u do ị ặ ng i dùng đ nh nghĩa ho c các c t trong b ng, b n có th h y b nó đi. Tuy nhiên ặ ả ị ườ c liên k t vào ít nh t m t c t bên trong m t b ng nào đó n u giá tr m c đ nh còn đ ế ượ ị ặ ho c m t ki u d li u do ng ườ ặ ộ ộ ộ ả i dùng đ nh nghĩa thì b n không th nào h y đ ạ ị ể ữ ệ ủ ượ ể ộ ị

ị ặ ơ ắ ự ứ ọ ộ ộ ể ủ ấ ả ặ ỏ ố ị ậ ồ ọ Delete trên th c đ n t Đ h y m t giá tr m c đ nh, b n ch n ch c năng t sau khi ị nh n chu t ph i vào tên giá tr m c đ nh 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. ạ ị ủ ằ ơ ở ữ ệ ủ ố ượ

Màn hình xác nh n h y b giá tr m c đ nh ậ ủ ỏ ị ặ ị

DROP DEFAULT đ h y b giá tr ệ ạ ể ủ ỏ ị Ngoài ra b n cũng có th s d ng l nh có tên ể ử ụ m c đ nh khi không còn dùng n a. ữ ặ ị

Cú pháp :

Trong đó :

ị ặ ị ị ặ ị ặ ố ị ị ủ ỏ ế ớ ấ ả ồ ạ ộ • Tên giá tr m c đ nh : này ph i t n t b ng ho c các ki u d li u do ng ả tên các giá tr m c đ nh mu n h y b . Các giá tr m c đ nh i trong c s d li u và không còn liên k t v i b t kỳ c t nào trong ơ ở ữ ệ ườ ể ữ ệ i dùng đ nh nghĩa. ị ặ

Ví d :ụ

- 8 -

H y giá tr m c đ nh có tên def_Dienthoai trong c s d li u QLBanHang. ơ ở ữ ệ ị ặ ị ủ

i n u nh giá tr m c đ nh v n còn liên ệ ấ ỗ ế ị ặ ư ẫ ị Tuy nhiên h th ng s xu t hi n thông báo l ẽ k t v i c t đi n tho i trong b ng NHACC. ạ ế ớ ộ ệ ố ệ ả