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视图