intTypePromotion=1
ADSENSE

SQL Server 2000 : Quy tắc kiểm tra miền giá trị dữ liệu (Rule)

Chia sẻ: Pham Long | Ngày: | Loại File: DOC | Số trang:10

468
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: SQL Server 2000 : Quy tắc kiểm tra miền giá trị dữ liệu (Rule)

  1. -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. -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. -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. -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. -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.
  6. -6- Chọn các cột để áp dụng quy tắc kiểm tra dữ liệu Bạn có thể áp dụng cùng một lúc một quy tắc kiểm tra miền giá tr ị d ữ li ệu cho nhi ều cột khác nhau trên nhiều bảng dữ liệu khác nhau, đó là đi ểm hay c ủa quy t ắc ki ểm tra dữ liệu so với CHECK constraint bên trong cấu trúc bảng. Bước 3 : Trong màn hình chọn các cột, sau khi đã chọn xong cột, nhấn nút Apply để áp dụng quy tắc kiểm tra dữ liệu hiện hành cho các cột đã chọn. Bạn có thể quay lại th ực hi ện lại các bước 2 và bước 3 cho các cột nằm trong các bảng khác.
  7. -7- Chọn Apply để áp dụng quy tắc hiện hành cho cột đã chọn Bước 4 : Sau cùng nhấn OK để đóng màn hình chọn các cột lại. Quay lại màn hình các thuộc tính của quy tắc, nhấn OK để kết thúc quá trình chỉ định các cột muốn áp dụng quy tắc kiểm tra miền giá trị dữ liệu. Ngoài ra bạn cũng có thể áp dụng quy tắc kiểm tra mi ền giá tr ị d ữ li ệu cho các c ột trong bảng hoặc các 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_bindrule. 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 ra trước đó. • Tên đối tượ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. Thông thường nếu là tên cột của bảng bắt buộc bạn phải theo đ ịnh d ạng là : tên_bảng.tên_cột. Ví dụ :
  8. -8- Để áp dụng quy tắc kiểm tra có tên là rule_Dvtinh_Hople cho c ột đ ơn v ị tính trong bảng VATTU, bạn thực hiện câu lệnh như sau : Bây giờ khi thực hiện thêm một vật tư mới vào bảng VATTU quy tắc ki ểm tra mi ền giá trị dữ liệu của cột đơn vị tính sẽ được áp dụng, có nghĩa là giá tr ị d ữ li ệu t ại c ột đơn vị tính chỉ có thể là : cái, bộ, kg, m2, m3. Khi đó, bạn thêm vật tư mới như sau : Giá trị dữ liệu tại cột đơn vị tính (Thùng) đã vi phạm quy tắc kiểm tra mà bạn đã đ ặt ra trước đó và sau cùng dữ liệu sẽ không được lưu trữ vào bảng VATTU. Ví dụ : Để áp dụng quy tắc kiểm tra có tên rule_Soluong_Duong cho ki ểu dữ li ệu mới có tên là uddt_Soluong, bạn thực hiện câu lệnh như sau : Bây giờ khi thực hiện cập nhật dữ liệu tại các c ột số lượng đ ầu kỳ, số l ượng nh ập, số lượng xuất và số lượng cuối kỳ trong bảng TONKHO thì giá trị dữ liệu tại các c ột này đảm bảo phải là dương mới không vi phạm quy tắc kiểm tra miền giá trị dữ liệu. Sau cùng khi bạn không còn muốn áp dụng quy tắc ki ểm tra mi ền giá tr ị d ữ li ệu cho các cột trong bảng hoặc các kiểu dữ liệu do người dùng đ ịnh nghĩa thì b ắt bu ộc ph ải sử dụng thủ tục nội tại hệ thống có tên là sp_unbindrule để làm điều đó. Ví dụ : Trong đó : • Tên đối tượ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. Thông thường nếu tên của cột bên trong bảng thì b ắt bu ộc phải theo đ ịnh d ạng : tên_bảng.tên_cột.
  9. -9- Ví dụ : Để bỏ hết tất cả các quy tắc kiểm tra đã áp dụng cho kiểu dữ liệu m ới do người dùng định nghĩa có tên là uddt_Soluong, bạn thực hiện câu lệnh như sau : 4/- Xóa quy tắc kiểm tra miền giá trị dữ liệu : Khi một quy tắc kiểm tra miền giá trị dữ liệu trong c ơ sở dữ li ệu không còn sử d ụng để áp 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 nếu quy tắc kiểm tra miền giá trị dữ liệu còn được nối kết vào ít nhất một cột bên trong bảng nào đó hoặc một ki ểu d ữ li ệu do ng ười dùng định nghĩa thì bạn sẽ không thể nào hủy đ ược quy t ắc ki ểm tra mi ền giá tr ị d ữ liệu đó. Để hủy một quy tắc kiểm tra miền giá trị dữ liệu, bạn sẽ chọn chức năng Delete trên thực đon tắt sau khi nhấn chuột phải vào tên quy tắc ki ểm tra mi ền giá tr ị d ữ li ệu muốn hủy bỏ trong tiện ích Enterprise Manager và xác nhận hủy b ỏ bằng cách ch ọn nút Drop All,/b> 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ỏ quy tắc kiểm tra dữ liệu Ngoài ra bạn cũng có thể sử dụng lệnh có tên DROP RULE đ ể h ủy b ỏ quy t ắc kiểm tra miền giá trị dữ liệu. Cú pháp :
  10. - 10 - Trong đó : • Tên quy tắc : tên các quy tắc muốn hủy bỏ. Các quy t ắc này ph ải t ồn t ại trong cơ sở dữ liệu và đảm bảo không còn áp dụng cho bất kỳ cột nào trong b ảng hoặc các kiểu dữ liệu do người dùng định nghĩa. Ví dụ : Hủy bỏ quy tắc kiểm tra miền giá trị dữ liệu rule_Dvtinh_Hople trong cơ s ở d ữ liệu QLBanHang. Tuy nhiên hệ thống sẽ xuất hiệnt hông báo lỗi bởi vì quy t ắc này v ẫn còn áp dụng cho cột đơn vị tính trong bảng VATTU.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2