SQL Server Not Null約束

在本教學中,將學習如何使用SQL Server NOT NULL約束來確保列中包含的數據不是NULL

SQL Server NOT NULL約束簡介

SQL Server NOT NULL約束只是指定列不能為NULL值。

以下示例為列創建一個具有NOT NULL約束的表:persons,它具有以下幾個字段:first_namelast_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)
);

請注意,上面幾列中,將NOT NULL約束作為列約束。

默認情況下,如果未指定NOT NULL約束,則SQL Server將允許該列接受NULL。 在此示例中,只有phone列可以接受NULL

1. 將NOT NULL約束添加到列

要將NOT NULL約束添加到現有列,可以分兩步執行:

首先,更新表的值,以便列中沒有NULL值:

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

其次,更改表以更改列的屬性:

ALTER TABLE table_name
ALTER COLUMN column_name data_type NOT NULL;

例如,要將NOT NULL約束添加到hr.persons表的phone列,請使用以下語句。
首先,如果某些人員沒有電話號碼,則將電話號碼更新為公司電話號碼,例如,0898-88889999

UPDATE hr.persons
SET phone = "0898-88889999"
WHER phone IS NULL;

第二步,修改phone列的屬性為NOT NULL

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

2. 刪除NOT NULL約束

要從列中刪除NOT NULL約束,請使用ALTER TABLE ALTER COLUMN語句,如下所示:

ALTER TABLE table_name
ALTER COLUMN column_name NULL;

例如,要從phone列中刪除NOT NULL約束,請使用以下語句:

ALTER TABLE hr.pesons
ALTER COLUMN phone NULL;

在本教學中,我們學習了如何使用SQL Server NOT NULL約束來強制列不接受NULL


上一篇: SQL Server約束 下一篇: SQL Server視圖