首页数据库类 mssql → 索引建立方法的区别

索引建立方法的区别

日期:2007-4-18 16:24:21 出处:其他转载 作者:不详 人气:

参数
UNIQUE

为表或视图创建唯一索引(不允许存在索引值相同的两行)。视图上的聚集索引必须是 UNIQUE 索引。

在创建索引时,如果数据已存在,Microsoft® SQL Server™ 会检查是否有重复值,并在每次使用 INSERT 或 UPDATE 语句添加数据时进行这种检查。如果存在重复的键值,将取消 CREATE INDEX 语句,并返回错误信息,给出第一个重复值。当创建 UNIQUE 索引时,有多个 NULL 值被看作副本。

如果存在唯一索引,那么会产生重复键值的 UPDATE 或 INSERT 语句将回滚,SQL Server 将显示错误信息。即使 UPDATE 或 INSERT 语句更改了许多行但只产生了一个重复值,也会出现这种情况。如果在有唯一索引并且指定了 IGNORE_DUP_KEY 子句情况下输入数据,则只有违反 UNIQUE 索引的行才会失败。在处理 UPDATE 语句时,IGNORE_DUP_KEY 不起作用。

SQL Server 不允许为已经包含重复值的列创建唯一索引,无论是否设置了 IGNORE_DUP_KEY。如果尝试这样做,SQL Server 会显示错误信息;重复值必须先删除,才能为这些列创建唯一索引。

CLUSTERED

创建一个对象,其中行的物理排序与索引排序相同,并且聚集索引的最低一级(叶级)包含实际的数据行。一个表或视图只允许同时有一个聚集索引。

具有聚集索引的视图称为索引视图。必须先为视图创建唯一聚集索引,然后才能为该视图定义其它索引。

在创建任何非聚集索引之前创建聚集索引。创建聚集索引时重建表上现有的非聚集索引。

如果没有指定 CLUSTERED,则创建非聚集索引。

 

非聚集索引
create index Index_1 on BrandType (
Brand ASC,
Type ASC
)
go

唯一索引
create unique index Index_1 on BrandType (
Brand ASC,
Type ASC
)
go

 

聚集索引
create clustered index Index_1 on BrandType (
Brand ASC,
Type ASC
)
go

 

关于本站 | 帮 助 | 广告服务 | 版权声明 | 业务合作 | 捐助本站 | 软件发布 | 联系我们
77资源下载 www.77zy.com ©2007-2008 版权所有
备案编号:赣ICP备07002641号  QQ:674648476