SQL Server: Ràng buộc PRIMARY KEY trong bảng (PRIMARY KEY Constraint)

SQL Server: Ràng buộc PRIMARY KEY trong bảng (PRIMARY KEY Constraint)
Ràng buộc Primary Key (khóa chính) được sử dụng để xác định khóa chính cho bảng.
Các khóa chính phải là giá trị duy nhất (UNIQUE), và không chứa giá trị rỗng (NULL).
Một bảng chỉ có một khóa chính. Khóa chính này có thể là một hoặc nhiều trường.

1. Sử dụng ràng buộc PRIMARY KEY cho một trường:
CREATE TABLE Tên_bảng
(
   Tên_cột_1 kiểu_dữ_liệu PRIMARY KEY,
   Tên_cột_2 kiểu_dữ_liệu, 
   ......................
   Tên_cột_n kiểu_dữ_liệu
)

Ví dụ 1: tạo Primary key cho cột ID trong bảng tblSinhVien
CREATE TABLE [dbo].[tblSinhVien]
(
[ID] [int] NOT NULL PRIMARY KEY,
[MaSinhVien] [nvarchar](20) NOT NULL,
[TenSinhVien] [nvarchar](50) NOT NULL,
[GioiTinh] [bit] NULL
)
Nếu nhập trùng ID, sẽ xuất hiện thông báo lỗi như hình sau:

Hình 1. Sử dụng PRIMARY KEY trong bảng tblSinhVien

2. Sử dụng ràng buộc PRIMARY KEY cho nhiều trường:
CREATE TABLE Tên_bảng
(
    Tên_cột_1 kiểu_dữ_liệu,  
    Tên_cột_2 kiểu_dữ_liệu,  
     ................
    Tên_cột_n kiểu_dữ_liệu,  
    CONSTRAINT PK_Tên_bảng PRIMARY KEY (Tên_cột_1, Tên_cột_2)
)

Ví dụ 2: tạo khóa chính cho 2 trường ID, MaSinhVien trong bảng tblSinhVien
CREATE TABLE [dbo].[tblSinhVien]
(
[ID] [int] NOT NULL,
[MaSinhVien] [nvarchar](20) NOT NULL,
[TenSinhVien] [nvarchar](50) NOT NULL,
[GioiTinh] [bit] NULL,
        CONSTRAINT PK_tblSinhVien PRIMARY KEY (ID, MaSinhVien)
)
Hình 2. Thông báo lỗi khi thêm mới bản ghi trùng cặp khóa ID, MaSinhVien

3. Thêm ràng buộc PRIMARY KEY cho một hoặc nhiều cột trên bảng có sẵn
3.1. Thêm PRIMARY KEY gồm một cột
Cú pháp:
ALTER TABLE Tên_bảng
ADD PRIMARY KEY (Tên_cột)

Ví dụ 3: thêm ràng buộc Primary key cho trường ID của bảng tblLopHoc
ALTER TABLE tblLopHoc
ADD PRIMARY KEY(ID)

3.2. Thêm PRIMARY KEY gồm nhiều trường
Cú pháp:
ALTER TABLE Tên_bảng
ADD CONSTRAINT PK_Tên_bảng PRIMARY KEY (Tên_cột_1, tên_cột_2)

Ví dụ 4: thêm ràng buộc Primary key cho trường ID, MaLopHoc của bảng tblLopHoc
ALTER TABLE tblLopHoc
ADD CONSTRAINT PK_tblLopHoc PRIMARY KEY(ID, MaLopHoc)

4. Xóa ràng buộc PRIMARY KEY trên bảng
Cú pháp:
ALTER TABLE Tên_bảng
DROP CONSTRAINT PK_Tên_bảng

Ví dụ 5: xóa ràng buộc Primary key trên trường ID, MaSinhVien của bảng tblSinhVien
ALTER TABLE tblSinhVien
DROP CONSTRAINT PK_tblSinhVien

Xem chi tiết