• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请问mssql2k中的创建unique约束与unique索引有啥区别?

hsn1982 珠海市晟意网络科技有限公司 CTO/CIO/技术副总裁/总工程师  2006-05-15 05:09:06
我测试了这两种,两种都可以做到限制唯一值。而且选项"忽略重复键"不起作用的,选与不选效果都一样是可以限制唯一值。

请问大家这是什么原因
...全文
660 点赞 收藏 10
写回复
10 条回复
RainyBoo 2007年01月29日
谢谢大家给予的详细的解答。
回复 点赞
轮胎企业信息化高总 2006年05月15日
保存起来。
回复 点赞
luoqun_ncs 2006年05月15日
唯一索引:里面可以有重复值,create的时候有选项的
唯一约束:为了实现唯一约束,数据库会强制定义一个唯一索引在数据库上面(为了性能),但是加了唯一约束以后就不能有重复值了

至于null值,sql server只允许加了唯一约束的列里面有一个null,oracle可以有多个null值.
回复 点赞
hsn1982 2006年05月15日
to zjcxc(邹建):
你的意思是选中“忽略重复值”时,如果在约束字段上插入已存在的值,不会返回错误,但还是插入失败。对吗?
回复 点赞
忽略重复值这个选项设置上后, 如果你插入的数据的值与现有值重复, 则插入不会失败, 而是自动跳过重复的这条记录的插入.
回复 点赞
hsn1982 2006年05月15日
to WangZWang(阿来) :
unique约束与unique索引的区别就是这样的阿。那“忽略重复值”有什么作用呢?
回复 点赞
itblog 2006年05月15日
索引有唯一索引和非唯一索引。唯一索引保证表中没有两行在定义索引的列上具有重复值。在唯一码上自动地定义唯一索引实施UNIQUE完整性约束
回复 点赞
功能上没有区别.

因为unique约束也是通过unique索引实现的.


唯一的区别在于建立和删除上.

索引是使用 create/drop index 创建和删除的
而约束是使用 alter table tb add constraint 建立, 使用 drop constraint 删除
回复 点赞
liangpei2008 2006年05月15日
关注楼主问题
回复 点赞
WangZWang 2006年05月15日
unique约束与unique索引后者包含了前者,且有索引的作用.
如果某列有多行包含 NULL 值,则不能在该列上创建unique索引
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告