一.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)