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

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.

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

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 ý :

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.

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.

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.

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ụ :

Để á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.

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.

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 :

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.

Bạn thấy bài viết này như thế nào?: 
Average: 9 (1 vote)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Sinh viên học online trong đại dịch

Covid-19 đang thúc đẩy phương pháp học tập linh hoạt ở các trường trên thế giới

Covid-19 đang thúc đẩy phương pháp học tập linh hoạt ở các trường đại học trên thế giới.

Steve Jobs và khái niệm “hệ sinh thái” thương trường

Steve Jobs và khái niệm “hệ sinh thái” thương trường

Steve Jobs – người sáng lập, chủ tịch của hãng Apple và là một trong những doanh nhân xuất sắc nhất của thế kỷ, qua đời ngày 5.10 ở tuổi 56. Ông để lại di sản của nỗ lực không ngừng cách tân những sản phẩm công nghệ hàng đầu thế giới. Với nhiều người, Jobs được ví như là “Leonardo Da Vinci thời hiện đại” bởi những ý tưởng sáng tạo đáng nể phục của ông.

Thủ Thuật SEO mũ đen cần tránh !

Thủ Thuật SEO mũ đen cần tránh !

Danh sách và những phân tích 10 thủ thuật mà các Webmaster hay những người làm SEO cần tránh sử dụng khi tối ưu hóa Website cho máy tìm kiếm.

Công ty diệt chuột T&C

 

Diet con trung