在本教學中,將學習如何使用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視圖
