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
标签:
SQL Server
, 数据库
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器