在本教學中,將學習如何使用SQL Server NOT NULL
約束來確保列中包含的數據不是NULL
。
SQL Server NOT NULL約束簡介
SQL Server NOT NULL
約束只是指定列不能為NULL
值。
以下示例為列創建一個具有NOT NULL
約束的表:persons
,它具有以下幾個字段:first_name
,last_name
和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)
);
請注意,上面幾列中,將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視圖