- DEFAULT IDENTITY
64ADD CONSTRAINT check_mad
6.5.2 Quy luậ t( Rules)
Các quy luật củng cố thêm tính tồn vẹn trên miền bằng cách kiểm tra chặt chẽ hơn tính hợp lệ của các giá trị. Quy luật thường được dùng để đảm bảo những giá trị như:
+ Tương hợp như một mẫu ( như mệnh đề like)
+ Tương hợp với danh sách các giá trị (như mệnh đề in) + Thuộc về một khoảng giá trị nào đĩ (như mệnh đề between)
Quy luật là những đối tượng độc lập địi hỏi bạn phải được phép tạo chúng. Bạn phải thuộc về role db_owner hoặc sysadmin. Quy luật được lưu trong bảng hệ thống sysobjects và syscomments ở mỗi cơ sở dữ liệu. Quy luật được kiểm tra khi cĩ những tác vụ chèn và cập nhật dữ liệu (khi cĩ liên quan đến cột được áp đặt quy luật).
Bạn cĩ thể tạo quy luật bằng câu lệnh CREATE RULE
Cú pháp:
CREATE RULE rule_name AS condition_expression :
SP_BINDRULE rule_name, table_name.column_name
Trong đĩ:
+ rule_name là tên hợp lệ và duy nhất trong cơ sở dữ liệu nĩ được tạo ra.
+ Condition_expression là biểu thức điều kiện cĩ dạng @variable_name <where clause>.
<Where clause> cĩ thể là mệnh đề where hợp lệ nào đĩ, bao gồm các tốn tử số học between, in, like, and, or, và not…Một quy luật khơng thể tham chiếu đến các giá trị biến hay những cột khác trong cơ sở dữ liệu. Để thực hiện bạn phải kiểm tra ràng buộc hay trigger.
Ví dụ:
CREATE RULE check_PNR AS @pnr BETWEEN 1 AND 500 :
SP_BINDRULE check_PNR, Reservation.PNR_no
Thực hành: Thực hiện các ràng buộc bằng T-SQL
- Được thiết đặt trên một hoặc một tập hợp các cột của bảng.
- Nhằm thiết đặt những giới hạn cho việc nhập giá trị cho cột dữ liệu. - Cĩ thể được định nghĩa ngay khi tạo bảng hoặc sửa cấu trúc bảng.
73
Thiết đặt một hoặc tập hợp các cột làm khố chính của bảng.
Cú pháp:
CREATE TABLE Table_name
(<Column_definition> PRIMARY KEY)
Ví dụ CREATE TABLE Reservation_copy ( PNR_no int PRIMARY KEY )
+ UNIQUE Constraint
Quy định cột này phải cĩ giá trị khác nhau trên mỗi dịng
Cú pháp:
CREATE TABLE Table_name (<Column_definition> UNIQUE )
Ví dụ:
CREATE TABLE passenger_copy ( [PP no] VARCHAR(20) UNIQUE
+ IDENTITY Property
Quy định giá trị của một cột nào đĩ trong bảng là tự động - seed_value: giá trị ban đầu
- increment_value: giá trị tăng
Cú pháp:
CREATE TABLE Table_name
(Column_name Data_Type IDENTITY [(<seed_value>, increment_value>)])
Ví dụ:
CREATE TABLE Reservation_Copy (ticket_no INT IDENTITY(1,1))
+ FOREIGN Key Constraint
Chỉ ra một cột làm khố ngoại của bảng (nhằm liên kết dữ liệu trong hai bảng)
Cú pháp:
CREATE TABLE Table_name Column_name Data_Type, ………
FOREIGN KEY (Column_name) REFERENCES Primarykey_Tablename)
Ví dụ:
CREATE TABLE Passenger
(PNR_no int, ticket_no int, name varchar(15), ………