一.default约束

--1.创建表xsxx(另一方法是直接在创建表的时候指定default约束,此处不再说明.)

create table xsxx (
stNo char(6),
spNo char(4),
stName varchar(8),
sAge tinyint)

--2.添加default约束

语法:alter table 表名 add default '字段值' for 字段名

例子:alter table xsxx add default '姓名' for stName

--3.查找default约束名,一般我们创建default约束时都使用的是默认的约束名(不象创建primary key和foreign key时我们都习惯使用自己建立的约束名),我们在删除有default约束的字段或default约束时因找不到约束名而无法删除,所以必须要先知道该字段的约束名。

select name as constraint_name,object_name(parent_obj)
as table_name from sysobjects where xtype='D'

如下图:

--4.删除default约束

--删除约束
alter table xsxx drop constraint DF__xsxx__stName__1273C1CD

二.check约束.

check约束用来检查字段值所允许的范围,是应用最广泛的约束。

语法:constraint constraint_name check (condition)

例子:

--1.创建约束check名为 con_sage.
create table xsxx (
stNo char(6),
spNo char(4),
stName varchar(8),
sAge tinyint,
constraint con_sage check (sage<>0))

--2.插入如下数据:

insert into xsxx values('100106','1003','王刚虎',0)

--3.结果如下:

消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 CHECK 约束"con_sage"冲突。该冲突发生于数据库"xscj",表"dbo.xsxx", column 'sAge'。
语句已终止。说明check约束生效。

三.primary key约束

--1.建新表时创建PK约束

create table xsxx (
stNo char(6) primary key,
spNo char(4),
stName varchar(8),
sAge tinyint)

或者

create table xsxx (
stNo char(6),
spNo char(4),
stName varchar(8),
sAge tinyint,
constraint pk_xsxx primary key (stNo)
)

--2.已存在表时创建PK约束

alter table xsxx add primary key(stNo)