-1- SQL Server 2000 : Quy tắc kiểm tra miền giá trị liệu (Rule) Microsoft SQL Server cung cấp đối tượng có tính hoạt động gần giống CHECK constraint, đối tượng dùng để kiểm tra giá trị liệu cột bên bảng phải thỏa điều kiện liệu bị sửa đổi thêm vào Đó đối tượng rules, tạm dịch quy tắc kiểm tra miền giá trị liệu 1/- Khái niệm : Ưu điểm đối tượng có quy tắc miền giá trị liệu giống bạn cần định nghĩa quy tắc đối tượng rules sau định áp dụng quy tắc cho cột bên bảng khác kiểu liệu 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ị liệu 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ỳ phải dương (>0) Thay bạn cần phải định nghĩa CHECK constraint riêng rẽ bên cấu trúc bảng để kiểm tra ràng buộc miền giá trị cột bạn cần định nghĩa quy tắc kiểm tra miền giá trị liệu hợp lý sau áp dụng quy tắc cho cột bên bảng TONKHO hay bạn áp dụng quy tắc cho kiểu liệu mà bạn sử dụng cho cột số lượng bảng liệu TONKHO 2/- Tạo quy tắc kiểm tra miền giá trị liệu : Giống đối tượng khác Microsoft SQL Server, bạn có cách để tạo quy tắc kiểm tra miền giá trị liệu Các bước bên hướng dẫn bạn cách thức để tạo quy tắc kiểm tra miền giá trị liệu tiện ích Enterprise Manager Bước : Khởi động tiện ích Enterprise Manager, chọn chức New Rule … thực đơn tắt sau nhấn chuột phải đối tượng Rules để tạo quy tắc kiểm tra miền giá trị liệu -2- Chọn New Rule để tạo quy tắc kiểm tra Bước : Trong hình định nghĩa quy tắc kiểm tra miền giá trị liệu định thuộc tính liên quan đến quy tắc kiểm tra liệu bao gồm tên quy tắc kiểm tra liệu, biểu thức điều kiện áp dụng quy tắc kiểm tra miền giá trị liệu, thông thường biểu thức so sánh bao gồm tên biến hình thức, phép toán so sánh giá trị/hàm Các thuộc tính liên quan đếnq uy tắc kiểm tra -3Sau nhấn OK để lưu lại quy tắc kiểm tra liệu vừa định nghĩa Bây sở liệu Quản lý bán hàng có thêm đối tượng quy tắc Ngoài bạn tạo quy tắc kiểm tra miền giá trị liệu lệnh CREATE RULE có cú pháp sau : Cú pháp : Trong : • Tên quy tắc : tên quy tắc kiểm tra miền giá trị liệu tạo mới, tên quy tắc kiểm tra phải sở liệu • Biểu thức : thông thường biểu thức luận lý biểu thức so sánh gần giống biểu thức sử dụng phía sau mệnh đề WHERE câu lệnh truy vấn Biểu thức gồm có thành phần : tên biến hình thức (phải bắt đầu ký tự @), toán tử so sánh, giá trị so sánh Trong tên biến hình thức tên dùng để định giá trị đại diện cho cột liệu mà quy tắc áp dụng kiểm tra Ví dụ : Để tạo quy tắc kiểm tra miền giá trị liệu cột số lượng phải dương Bạn thực câu lệnh CREATE RULE sau : Ví dụ : Để tạo quy tắc kiểm tra miền giá trị liệu cột đơn vị tính vật tư thuộc từ : cái, bộ, kg, m2, m3 Bạn thực câu lệnh CREATE RULE sau : Lưu ý : -4Có thể sử dụng toán tử : LIKE, IN, BETWEEN AND phép toán tử so sánh xây dựng biểu thức dùng để kiểm tra miền giá trị liệu Trong biểu thức tham chiếu đến cột khác bên bảng đưa 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ị liệu, bạn tạo quy tắc sau : giá trị cột tổng số lượng xuất bảng TONKHO vật tư tháng với tổng giá trị cột số lượng xuất bảng CTPXUAT (chi tiết phiếu xuất) vật tư tương ứng tháng Bạn tạo quy tắc kiểm tra tính toán phức tạp dạng đối tượng Trigger bảng liệu 3/- Áp dụng quy tắc kiểm tra miền giá trị liệu : Sau tạo quy tắc kiểm tra miền giá trị liệu tiện ích Enterprise Manager câu lệnh CREATE RULE cửa sổ Query Analyzer, quy tắc chưa hoạt động, chưa thể thực kiểm tra miền giá trị liệu bạn định rõ ràng áp dụng quy tắc cụ thể vào cột bảng kiểu liệu người dùng định nghĩa Ngay sau áp dụng quy tắc kiểm tra miền giá trị liệu cho cột bên bảng, quy tắc có hiệu lực dòng liệu thêm sửa đổi dòng liệu có bên bảng Các bước bên hướng dẫn bạn cách thức để áp dụng quy tắc kiểm tra miền giá trị liệu mà bạn tạo trước vào cột bảng tiện ích Enterprise Manager Bước : Khởi động tiện ích Enterprise Manager, chọn chức Properties thực đơn tắt sau nhấn chuột phải tênc quy tắc muốn áp dụng vào cột bảng kiểu liệu người dùng định nghĩa -5- Chọn quy tắc kiểm tra liệu áp dụng cho cột Trong hình thuộc tính quy tắc kiểm tra, nhấn nút Bind Columns để chọn cột bên bảng mà quy tắc kiểm tra miền giá trị liệu hành áp dụng bước Bước : Trong hình chọn cột bên bảng, chọn bảng liệu, chọn tiếp cột có bảng để định việc áp dụng quy tắc kiểm tra miền giá trị liệu hành cho cột Sau nhấn nút Add -6- Chọn cột để áp dụng quy tắc kiểm tra liệu Bạn áp dụng lúc quy tắc kiểm tra miền giá trị liệu cho nhiều cột khác nhiều bảng liệu khác nhau, điểm hay quy tắc kiểm tra liệu so với CHECK constraint bên cấu trúc bảng Bước : Trong hình chọn cột, sau chọn xong cột, nhấn nút Apply để áp dụng quy tắc kiểm tra liệu hành cho cột chọn Bạn quay lại thực lại bước bước cho cột nằm bảng khác -7- Chọn Apply để áp dụng quy tắc hành cho cột chọn Bước : Sau nhấn OK để đóng hình chọn cột lại Quay lại hình thuộc tính quy tắc, nhấn OK để kết thúc trình định cột muốn áp dụng quy tắc kiểm tra miền giá trị liệu Ngoài bạn áp dụng quy tắc kiểm tra miền giá trị liệu cho cột bảng kiểu liệu người dùng định nghĩa thủ tục nộ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ị liệu tạo trước • Tên đối tượng : tên cột bảng tên kiểu liệu người dùng định nghĩa Thông thường tên cột bảng bắt buộc bạn phải theo định dạng : tên_bảng.tên_cột Ví dụ : -8Để áp dụng quy tắc kiểm tra có tên rule_Dvtinh_Hople cho cột đơn vị tính bảng VATTU, bạn thực câu lệnh sau : Bây thực thêm vật tư vào bảng VATTU quy tắc kiểm tra miền giá trị liệu cột đơn vị tính áp dụng, có nghĩa giá trị liệu cột đơn vị tính : cái, bộ, kg, m2, m3 Khi đó, bạn thêm vật tư sau : Giá trị liệu cột đơn vị tính (Thùng) vi phạm quy tắc kiểm tra mà bạn đặt trước sau liệu không 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 liệu có tên uddt_Soluong, bạn thực câu lệnh sau : Bây thực cập nhật liệu cột số lượng đầu kỳ, số lượng nhập, số lượng xuất số lượng cuối kỳ bảng TONKHO giá trị liệu cột đảm bảo phải dương không vi phạm quy tắc kiểm tra miền giá trị liệu Sau bạn không muốn áp dụng quy tắc kiểm tra miền giá trị liệu cho cột bảng kiểu liệu người dùng định nghĩa bắt buộc phải sử dụng thủ tục nội hệ thống có tên sp_unbindrule để làm điều Ví dụ : Trong : • Tên đối tượng : tên cột bảng tên kiểu liệu người dùng định nghĩa Thông thường tên cột bên bảng bắt buộc phải theo định dạng : tên_bảng.tên_cột -9Ví dụ : Để bỏ hết tất quy tắc kiểm tra áp dụng cho kiểu liệu người dùng định nghĩa có tên uddt_Soluong, bạn thực câu lệnh sau : 4/- Xóa quy tắc kiểm tra miền giá trị liệu : Khi quy tắc kiểm tra miền giá trị liệu sở liệu không sử dụng để áp dụng cho kiểu liệu người dùng định nghĩa cột bảng, bạn hủy bỏ Tuy nhiên quy tắc kiểm tra miền giá trị liệu nối kết vào cột bên bảng kiểu liệu người dùng định nghĩa bạn hủy quy tắc kiểm tra miền giá trị liệu Để hủy quy tắc kiểm tra miền giá trị liệu, bạn chọn chức Delete thực đon tắt sau nhấn chuột phải vào tên quy tắc kiểm tra miền giá trị liệu muốn hủy bỏ tiện ích Enterprise Manager xác nhận hủy bỏ cách chọn nút Drop All,/b> hình hủy bỏ đối tượng bên sở liệu Microsoft SQL Server Màn hình xác nhận hủy bỏ quy tắc kiểm tra liệu Ngoài bạn sử dụng lệnh có tên DROP RULE để hủy bỏ quy tắc kiểm tra miền giá trị liệu Cú pháp : - 10 Trong : • Tên quy tắc : tên quy tắc muốn hủy bỏ Các quy tắc phải tồn sở liệu đảm bảo không áp dụng cho cột bảng kiểu liệu người dùng định nghĩa Ví dụ : Hủy bỏ quy tắc kiểm tra miền giá trị liệu rule_Dvtinh_Hople sở liệu QLBanHang Tuy nhiên hệ thống xuất hiệnt hông báo lỗi quy tắc áp dụng cho cột đơn vị tính bảng VATTU ... New Rule để tạo quy tắc kiểm tra Bước : Trong hình định nghĩa quy tắc kiểm tra miền giá trị liệu định thuộc tính liên quan đến quy tắc kiểm tra liệu bao gồm tên quy tắc kiểm tra liệu, biểu thức... Xóa quy tắc kiểm tra miền giá trị liệu : Khi quy tắc kiểm tra miền giá trị liệu sở liệu không sử dụng để áp dụng cho kiểu liệu người dùng định nghĩa cột bảng, bạn hủy bỏ Tuy nhiên quy tắc kiểm tra. .. nhiên quy tắc kiểm tra miền giá trị liệu nối kết vào cột bên bảng kiểu liệu người dùng định nghĩa bạn hủy quy tắc kiểm tra miền giá trị liệu Để hủy quy tắc kiểm tra miền giá trị liệu, bạn chọn chức