CREATE INDEX-Anweisung (Microsoft Access SQL)

Gilt für: Access 2013, Office 2013

Erstellt einen neuen Index für eine vorhandene Tabelle.

Hinweis

Bei Nicht-Microsoft Access-Datenbankmodulen wird die Verwendung von CREATE INDEX (außer zum Erstellen eines Pseudoindexes für eine verknüpfte ODBC-Tabelle) oder von DDL-Anweisungen (Data Definition Language) vom Microsoft Access-Datenbankmodul nicht unterstützt. Verwenden Sie stattdessen die Create-Methoden von DAO. Weitere Informationen finden Sie unter "Anmerkungen".

Syntax

CREATE [ UNIQUE ] INDEX INDEXON-Tabelle (Feld [ASC|DESC][, Feld [ASC|DESC], ...]) [WITH { PRIMARY | NULL NICHT ZULASSEN | IGNORE NULL }]

Die CREATE INDEX-Anweisung setzt sich wie folgt zusammen:

Part

Beschreibung

Index

Der Name des zu erstellenden Index.

table

Der Name der vorhandenen Tabelle, die den Index enthalten soll.

field

Der Name des zu indizierenden Felds.The name of the field or fields to be indexed. Um einen Einzelfeldindex zu erstellen, listen Sie den Feldnamen in Klammern nach dem Tabellennamen auf. Um einen Index mit mehreren Feldern zu erstellen, listen Sie den Namen jedes Felds auf, das in den Index aufgenommen werden soll. Um absteigende Indizes zu erstellen, verwenden Sie das reservierte Wort DESC. Andernfalls wird davon ausgegangen, dass Indizes aufsteigend sind.

Bemerkungen

Verwenden Sie das reservierte Wort UNIQUE, um doppelte Werte im indizierten Feld oder in Feldern verschiedener Datensätze zu verhindern.

In der optionalen WITH-Klausel können Sie Gültigkeitsprüfungsregeln für Daten erzwingen. Sie können:

  • Sie können NULL-Einträge im indizierten Feld oder in Feldern neuer Datensätze untersagen, indem Sie die Option DISALLOW NULL verwenden.

  • Datensätze mit Null -Werten in dem oder den indizierten Feldern unter Verwendung der IGNORE NULL-Option vom Index ausschließen.

  • Das oder die indizierten Felder unter Verwendung des reservierten Worts PRIMARY als Primärschlüssel bestimmen. Dies setzt voraus, dass der Schlüssel eindeutig ist, sodass das reservierte Wort UNIQUE ausgelassen werden kann.

Sie können CREATE INDEX verwenden, um einen Pseudoindex für eine verknüpfte Tabelle in einer ODBC-Datenquelle (wie z. B. Microsoft SQL Server) zu erstellen, die nicht bereits über einen Index verfügt. Sie benötigen keine Berechtigung für oder Zugriff auf den Remoteserver, um einen Pseudoindex erstellen zu können, und die Remotedatenbank erkennt den Pseudoindex nicht und ist auch nicht davon betroffen. Für verknüpfte und systemeigene Tabellen wird dieselbe Syntax verwendet. Es kann besonders nützlich sein, einen Pseudoindex für eine Tabelle zu erstellen, die normalerweise schreibgeschützt ist.

Sie können auch die ALTER TABLE-Anweisung verwenden, um einen Index mit einem oder mehreren Feldern zu einer Tabelle hinzuzufügen, und Sie können die ALTER TABLE-Anweisung oder die DROP-Anweisung verwenden, um einen Index zu entfernen, der über die ALTER TABLE- oder CREATE INDEX-Anweisung erstellt wurde.

Hinweis

Verwenden Sie das reservierte Wort PRIMARY nicht, wenn Sie einen neuen Index für eine Tabelle erstellen, die bereits einen Primärschlüssel aufweist. Andernfalls tritt ein Fehler auf.

Beispiel

This example creates an index consisting of the fields Home Phone and Extension in the Employees table.

    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 

This example creates an index on the Customers table using the CustomerID field. No two records can have the same data in the CustomerID field, and no Null values are allowed.

    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