WEB开发网
开发学院数据库MSSQL Server SQL SERVER 2005中的约束 阅读

SQL SERVER 2005中的约束

 2010-10-01 09:00:36 来源:WEB开发网   
核心提示: 这里顺便提一下,如果我们执行了下面的代码,SQL SERVER 2005中的约束(2),结果会是怎样呢?insertintogoodsvalues(null)如果你觉得也会报错,那么恭喜你,还有一点,主键不能为null,你错了,约束其实是对满足条件

这里顺便提一下,如果我们执行了下面的代码,结果会是怎样呢?

insert into goods values(null)

如果你觉得也会报错,那么恭喜你,你错了。约束其实是对满足条件,即条件表达式返回TRUE的一律通过。那么,如果结果是NULL呢?NULL在SQL SERVER里的类型是UNKNOWN,就是不知道。那我们就要把它理解成可以成为任何类型,可能为TRUE。所以在这个例子中,NULL是可以被插入的。

2.         Default Constraints

这个约束相对简单一些,就是事先定义一个默认值,如果在插入数据的时候没有指定,系统会自动把事先定义好的默认值写入对应的列。

create table Product(
ProductID int identity(1,1) primary key,
ProductName varchar(80) not null,
Country varchar(40) default 'China'
)

Country这列就是一个含有Default约束的列,如果在插入一条数据的时候没有指定值,那么系统会默认的插入China.

insert into product values('AAA','US')

insert into product(ProductName) values('BBB')

结果为

1 AAA US

2 BBB China

3.        

Unique Constraints

Unique就是独有的,这个约束就是确保在非主键列中不输入重复的值。这一点与主键的概念可能有一些类似,之所以把Unique放在前面说,就是为了强调一点,如果想强制一列或者多列的组合的唯一性时,应该选择Unique而不是主键。

同时,还有一点,主键不能为null,但是Unique可以支持null。

alter table product 

add ProductCode int null constraint pc_unique unique

Tags:SQL SERVER 约束

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接