vf中索引怎么写( 三 )

<索引关键字表达式> TO <单索引文件> | TAG <标识名>[OF <独立复合索引文件名>] [FOR <逻辑表达式>] [COMPACT][ASCENDING | DESCENDING][UNIQUE] [ADDITIVE]【功能】对当前表文件按指定的关键字建立索引文件 。
【说明】<索引关键字表达式>:指定建立索引文件的关键字表达式 , 可以是单一字段名 , 也可以是多个字段组成的字符型表达式 , 表达式中各字段的类型只能是数值型、字符型和日期型和逻辑型 。当表达式是单个字段名时 , 字段类型不用转换;应转换成同一类型的表达式 。
TAG <标识名>:此选项只对建立复合索引文件时有效 , 指定建立或追加索引标识的标识名 。OF <独立复合索引文件>:指定独立复合索引文件名 。
若有此选项 , 表示在指定的独立复合索引文件中追加一个索引标识 , 若指定的独立复合索引文件不存在 , 系统将自动建立指定的文件 。若没有此选项 , 表示在结构复合文件中追加一个索引标识 , 若结构复合索引文件不存在 , 系统将自动建立结构复合索引文件 。
FOR <逻辑表达式>:表示只对满足条件的记录建立索引 。COMPACT:此选项只对单索引文件有效 , 表示建立压缩索引文件 。
ASCENDING|DESCENDING: ASCENDING表示按升序建立索引 , DESCENDING表示按降序建立索引 。缺省时 , 按按升序建立索引 。
单索引文件不能选用DESCENDING选项 。UNIQUE:表示建立的是唯一索引 。
ADDITIVE:表示保留以前打开的索引文件 。否则 , 除结构复合索引文件外 , 以前打开的其他索引文件都将被关闭 。
新建的索引文件自动打开 , 并开始起作用 。
6.VF中如何建立索引,用命令CREATE INDEX 为给定表或视图创建索引 。
只有表或视图的所有者才能为表创建索引 。表或视图的所有者可以随时创建索引 , 无论表中是否有数据 。
可以通过指定限定的数据库名称 , 为另一个数据库中的表或视图创建索引 。语法 CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON { table | view } ( column [ ASC | DESC ] [ , 。
n ] ) [ WITH < index_option > [ , 。n] ] [ ON filegroup ] < index_option > ::= { PAD_INDEX | FILLFACTOR = fillfactor | IGNORE_DUP_KEY | DROP_EXISTING | STATISTICS_NORECOMPUTE | SORT_IN_TEMPDB } 参数 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 会显示错误信息;重复值必须先删除 , 才能为这些列创建唯一索引 。