Sau lời khai báo tên và kiểu của cột, bạn có thể khai báo các ràng buộc dữ liệu trên cột đó
Các ràng buộc có thể là:
- NULL hoặc NOT NULL
- PRIMARY KEY hoặc UNIQUE [ CLUSTERED| NONCLUSTERED]
Clustered: Một table chỉ có một chỉ mục loại này, xác định thứ tự vật lý của table. Được dùng cho các thuộc tính thường phải tìm kiếm giá trị trên đó.
Non-Clustered: Sắp xếp dữ liệu theo các field chỉ định. Một table có thể có nhiều chỉ mục loại này. Dữ liệu và index được lưu ở hai nơi khác nhau.
- REFERENCES ref_table [ref_column]
[ON DELETE {CASCADE| NO ACTION}]
[ON UPDATE {CASCADE| NO ACTION}]
- CHECK (logical_expression)
- DEFAULT <exp>: giá trị mặc định của cột trên mẫu tin mới
- IDENTITY [(seed, increment )]: thường được dùng khai báo cho cột kiểu số nguyên, là khóa chính của table. Chỉ định giá trị được ghi trên mẫu tin mới là một số phân biệt với các mẫu tin khác. Trong đó: Seed - giá trị khởi đầu và increment - số gia
Ví dụ: CREATE TABLE [dbo].[SanPham](
MaSP Smallint Identity (1,1) NOT NULL,
TenSP varchar(30) NOT NULL,
DonGia Money Default 0,
SoTon Real Default 0)