5.5 SQL Server非空约束


 

SQL Server NOT NULL(非空)约束

 

 

简介

SQL Server 非空约束仅指定列不能为NULL。

下面的示例创建了一个表,其中列的约束为非空约束: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。默认为可空。

给已存在的列添加非空约束

第一步:给列中为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

posted on 2025-04-21 11:42  漫思  阅读(40)  评论(0)    收藏  举报

导航