首页 > 其他 > 详细

unique 约束和null

时间:2015-11-21 19:38:41      阅读:254      评论:0      收藏:0      [点我收藏+]

unique约束使用unique index来限制列值的唯一性;

创建unique约束之后,column中允许插入null值,unique 约束将两个null值看作是相同的(即null=null为true),null和其他任何非null值都不相等。

 

一,unique约束分为column level和table level,区别在于Table Level需要制定unique约束影响的column(or columns)。

Column level的unique 约束语法

column_name <data_type>

[ CONSTRAINT constraint_name ] 
{ PRIMARY KEY | UNIQUE } 
        [ CLUSTERED | NONCLUSTERED ] 
        (column [ ASC | DESC ] [ ,...n ] )
        [ WITH FILLFACTOR = fillfactor 
        [ WITH ( <index_option>[ , ...n ] ) ]
}


Table level的unique 约束语法

[ CONSTRAINT constraint_name ] 
{ 
    { PRIMARY KEY | UNIQUE } 
        [ CLUSTERED | NONCLUSTERED ] 
        (column [ ASC | DESC ] [ ,...n ] )
        [ WITH FILLFACTOR = fillfactor 
        [ WITH ( <index_option>[ , ...n ] ) ]
}


使用create table命令来创建unique 约束

create table dbo.dt_test_unique
(
id int constraint UQ_id unique nonclustered,
code int
)

create table dbo.dt_test_unique
(
id int ,
code int,
constraint UQ_id unique nonclustered(id)
)

 

 二,在已经存在的表上

create table dbo.dt_test_unique
(
id int ,
code int
)

1,在已经存在的表上增加unique约束

alter table dbo.dt_test_unique
add constraint uq_test_id unique nonclustered(id)

2,在已经存在的表上删除unique约束

alter table dbo.dt_test_unique
drop constraint uq_test_id

3,在已经存在的表上修改unique约束

在已经存在的表上修改unique约束,采用的workaround是先删除 unique约束,后增加unique约束

alter table dbo.dt_test_unique
drop constraint uq_test_id

alter table dbo.dt_test_unique
add constraint uq_test_id unique nonclustered(id)

4,通过alter table 命令增加new column来增加 column level的unique 约束

alter table dbo.dt_test_unique
add datekey int
constraint uq_test_datekey unique nonclustered

 

推荐文档:

http://www.cnblogs.com/kissdodog/archive/2013/05/31/3109509.html

http://www.cnblogs.com/mybear/archive/2010/09/03/1816810.html

参考文档:

https://msdn.microsoft.com/en-us/library/ms190273(v=sql.110).aspx
https://msdn.microsoft.com/en-us/library/ms188066(v=sql.110).aspx
https://msdn.microsoft.com/en-us/library/ms187742(v=sql.110).aspx
https://msdn.microsoft.com/zh-cn/library/ms174979.aspx

unique 约束和null

原文:http://www.cnblogs.com/ljhdo/p/4984349.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!