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_name
và email
:
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
.