Ràng buộc NOT NULL trong SQL Server

Ràng buộc NOT NULL trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng ràng buộc NOT NULL trong SQL Server để đảm bảo một cột không chứa dữ liệu NULL.

Giới thiệu về ràng buộc NOT NULL trong SQL Server

Ràng buộc NOT NULL của SQL Server chỉ định rằng một cột không được chứa dữ liệu NULL.

Ví dụ sau tạo ra một bảng với ràng buộc NOT NULL cho các cột: first_name, last_nameemail:

CREATE SCHEMA hr;
GO

CREATE TABLE hr.persons(
    person_id INT IDENTITY PRIMARY KEY,
    first_name VARCHAR(255) NOT NULL,
    last_name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    phone VARCHAR(20)
);

Lưu ý: ràng buộc NOT NULL luôn được viết dưới dạng các ràng buộc cột.

Theo mặc định, nếu bạn không chỉ định ràng buộc NOT NULL, SQL Server sẽ cho phép cột chấp nhận giá trị NULL. Trong ví dụ này, cột phone có thể chấp nhận giá trị NULL.

Thêm ràng buộc NOT NULL vào một cột hiện có trong SQL Server

Để thêm ràng buộc NOT NULL vào cột hiện có, bạn làm theo các bước sau:

Đầu tiên, hãy cập nhật bảng để không có giá trị NULL trong cột:

UPDATE table_name
SET column_name = <value>
WHERE column_name IS NULL;

Tiếp theo, thay đổi bảng để tạo ràng buộc NOT NULL cho cột:

ALTER TABLE table_name
ALTER COLUMN column_name data_type NOT NULL;

Ví dụ: để thêm ràng buộc NOT NULL vào cột phone của bảng hr.persons, bạn sử dụng các câu lệnh sau:

Trước tiên, nếu một người không có số điện thoại, thì hãy cập nhật số điện thoại thành số điện thoại của công ty chẳng hạn, ví dụ: (408) 123 4567:

UPDATE hr.persons
SET phone = "(408) 123 4567"
WHER phone IS NULL;

Tiếp theo, sửa đổi thuộc tính của cột phone:

ALTER TABLE hr.persons
ALTER COLUMN phone VARCHAR(20) NOT NULL;

Loại bỏ ràng buộc NOT NULL trong SQL Server

Để loại bỏ ràng buộc NOT NULL khỏi một cột, bạn sử dụng câu lệnh ALTER TABLE ALTER COLUMN như sau:

ALTER TABLE table_name
ALTER COLUMN column_name data_type NULL;

Ví dụ, để loại bỏ ràng buộc NOT NULL khỏi cột phone, bạn sử dụng câu lệnh sau:

ALTER TABLE hr.pesons
ALTER COLUMN phone VARCHAR(20) NULL;

Trong hướng dẫn này, bạn đã học cách sử dụng ràng buộc NOT NULL trong SQL Server để đảm bảo một cột không chứa dữ liệu NULL.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *