Partager via


CREATE INDEX, instruction (Microsoft Access SQL)

S’applique à : Access 2013, Office 2013

Crée un index sur une table existante.

Remarque

Pour les bases de données autres que celles de type Microsoft Access, le moteur de base de données Microsoft Access ne prend pas en charge CREATE INDEX (sauf pour créer un pseudo index sur une table liée ODBC), ni les instructions du langage de définition de données (DDL). Utilisez plutôt les méthodes Create de DAO. Pour plus d'informations, voir la section Notes.

Syntaxe

CREATE [ UNIQUE ] INDEX ONtable (champ [ASC|DESC][, champ [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORER LA VALEUR NULL }]

L’instruction CREATE INDEX comprend les parties suivantes :

Quitter

Description

index

Nom de l’index à créer.

table

Nom de la table existante qui contiendra l’index.

field

Nom du champ ou des champs à indexer. Pour créer un index d'un seul champ, indiquez le nom du champ entre parenthèses suivi du nom de la table. Pour créer un index de plusieurs champs, indiquez le nom de chaque champ à inclure dans l'index. Pour créer des index décroissants, utilisez le mot réservé DESC, sinon les index sont considérés comme croissants.

Remarques

Pour interdire la présence de valeurs en double dans les champs indexés d’enregistrements différents, utilisez le mot réservé UNIQUE.

Vous pouvez appliquer des règles de validation dans la clause WITH facultative. Vous pouvez :

  • Interdire les entrées Null dans les champs indexés des nouveaux enregistrements en utilisant l’option DISALLOW NULL.

  • empêcher que des enregistrements avec des valeurs Null dans les champs indexés soient inclus dans l'index à l'aide de l'option IGNORE NULL ;

  • désigner les champs indexés en tant que clé primaire en utilisant le mot réservé PRIMARY. Ceci implique que la clé soit unique, aussi vous pouvez omettre le mot réservé UNIQUE.

Vous pouvez utiliser CREATE INDEX pour créer un pseudo index sur une table liée dans une source de données ODBC, telle que Microsoft SQL Server™ qui ne comporte pas d'index. Pour créer un pseudo-index, vous n’avez pas besoin d’autorisation ou d’accès au serveur distant. La base de données distante ignore l’existence du pseudo-index et n’est nullement affectée par celui-ci. Vous utilisez la même syntaxe pour les tables liées et natives. La création d’un pseudo index sur une table ordinairement en lecture seule peut être particulièrement utile.

Vous pouvez également utiliser l'instruction ALTER TABLE pour ajouter un index d'un seul champ ou de plusieurs champs à une table et l'instruction ALTER TABLE ou DROP pour supprimer un index créé avec ALTER TABLE ou CREATE INDEX.

Remarque

N’utilisez pas le mot réservé PRIMARY lorsque vous créez un index sur une table qui possède déjà une clé primaire. Autrement, une erreur se produit.

Exemple

Dans cet exemple, un index comportant les champs Home Phone et Extension dans la table Employees est créé.

    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 

Dans cet exemple, un index est créé sur la table Customers utilisant le champ CustomerID. Deux enregistrements ne peuvent pas avoir les mêmes données dans le champ CustomerID et aucune valeur Null n'est autorisée.

    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