5.5 SQL Server非空约束
SQL Server NOT NULL(非空)约束
简介
SQL Server 非空约束仅指定列不能为NULL。
下面的示例创建了一个表,其中列的约束为非空约束: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。默认为可空。
给已存在的列添加非空约束
第一步:给列中为NULL的那些记录更新成一个非空的值
| UPDATE table_name | |
| SET column_name = <value> | |
| WHERE column_name IS NULL; |
其次,更改表以更改列的属性:
| ALTER TABLE table_name | |
| ALTER COLUMN column_name data_type NOT NULL; |
例如,要向hr.persons表的phone列添加NOT NULL约束,可以使用以下语句:
首先,如果某人没有电话号码,则将电话号码更新为公司或者家庭的电话号码,例如,(408)123 4567:
| UPDATE hr.persons | |
| SET phone = "(408) 123 4567" | |
| WHER phone IS NULL; |
其次,修改phone列的属性:
| ALTER TABLE hr.persons | |
| ALTER COLUMN phone VARCHAR(20) NOT NULL; |
移除非空约束
要从列中删除NOT NULL约束,请使用ALTER TABLE ALTER COLUMN语句,如下所示:
| ALTER TABLE table_name | |
| ALTER COLUMN column_name data_type NULL; |
例如,要从phone列中删除NOT NULL约束,可以使用以下语句:
| ALTER TABLE hr.pesons | |
| ALTER COLUMN phone VARCHAR(20) NULL; |
分类: SQL Server
漫思
浙公网安备 33010602011771号