适用于:Access 2013、Office 2013
对现有表创建新索引。
注意
[!注释] 对于非 Microsoft Access 数据库引擎的数据库,Microsoft Access 数据库引擎不支持使用 CREATE INDEX 语句(除了对 ODBC 链接表创建伪索引外)或者任何数据定义语言 (DDL) 语句。 请改为使用 DAO Create 方法。 有关详细信息,请参阅"备注"部分。
语法
CREATE [ UNIQUE ] INDEX index ON table (字段 [ASC|DESC][, 字段 [ASC|DESC], ...]) [WITH { PRIMARY |DISALLOW NULL |IGNORE NULL }]
CREATE INDEX 语句包含以下部分:
Part |
说明 |
---|---|
index |
要创建的索引的名称。 |
table |
将包含索引的现有表的名称。 |
field |
要索引的字段的名称。 若要创建单字段索引,请在表名后面的圆括号里列出字段名称。 若要创建多字段索引,请列出每一个将要包含在索引中的字段的名称。 若要创建降序索引,请使用 DESC 保留字;否则,索引假定为升序。 |
说明
若要禁止不同记录的索引字段中出现重复值,请使用 UNIQUE 保留字。
在可选的 WITH 子句中,可以强制执行数据验证规则。 您可以进行以下操作:
通过使用 DISALLOW NULL 选项禁止新纪录的索引字段中使用 Null 项。
使用 IGNORE NULL 选项,以防止被索引字段中含有 NULL 值的记录被包含在索引中。
使用 PRIMARY 保留字,将被索引字段指定为主键。 这意味着该键是唯一的,所以可以省略 UNIQUE 保留字。
可以使用 CREATE INDEX 对 ODBC 数据源(如 Microsoft SQL Server)中不包含索引的链接表创建伪索引。 不需要针对远程服务器的权限或访问权限即可创建伪索引,远程数据库不会觉察到伪索引且不受其影响。 对链接表和本地表使用相同的语法。 对通常为只读状态的表创建伪索引非常有用。
也可以使用 ALTER TABLE 语句向表中添加单字段索引或多字段索引,还可以使用 ALTER TABLE 语句或 DROP 语句删除用 ALTER TABLE 或 CREATE INDEX 语句创建的索引。
注意
对已有主键的表创建新索引时,请勿使用 PRIMARY 保留字;这样做会出现错误。
示例
以下示例创建一个包含 Employees 表中的 Home Phone 和 Extension 字段的索引。
Sub CreateIndexX1()
Dim dbs As Database
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Create the NewIndex index on the Employees table.
dbs.Execute "CREATE INDEX NewIndex ON Employees " _
& "(HomePhone, Extension);"
dbs.Close
End Sub
本例使用 CustomerID 字段在 Customers 表上创建索引。 CustomerID 字段中任何两个记录的数据都不能相同,并且不允许存在 Null 值。
Sub CreateIndexX2()
Dim dbs As Database
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Create a unique index, CustID, on the
' CustomerID field.
dbs.Execute "CREATE UNIQUE INDEX CustID " _
& "ON Customers (CustomerID) " _
& "WITH DISALLOW NULL;"
dbs.Close
End Sub