ALTER TABLE (Microsoft Access SQL), instruction

S’applique à : Access 2013, Office 2013

Modifie la structure d’une table après qu’elle a été créée avec l’instruction CREATE TABLE.

Remarque

Le moteur de base de données Access ne prend pas en charge l’utilisation de l’instruction ALTER TABLE ou d’instructions en langage de définition de données (DDL) avec des bases de données autres que Microsoft Access. Utilisez plutôt les méthodes Create de DAO.

Syntaxe

ALTER TABLE table {ADD {COLUMN type[(size)] [NOT NULL] [ CONSTRAINT index] | TYPE de champ ALTER COLUMN[(size)] | CONSTRAINT multifieldindex} | DROP {COLUMN field I CONSTRAINT indexname} }

L'instruction ALTER TABLE est composée des arguments suivants :

Argument

Description

table

Nom de la table à modifier.

champ

Nom du champ à ajouter ou à supprimer de la table. Ou, nom du champ à modifier dans la table.

type

Type de données du champ.

taille

Taille du champ en nombre de caractères (champs texte et binaires seulement).

index

Index pour field. Pour plus d’informations sur la création de cet index, voir CONSTRAINT, clause.

multifieldindex

Définition d’un index multichamp à ajouter à table. Pour plus d’informations sur la création de cet index, voir CONSTRAINT, clause.

indexname

Nom de l'index de plusieurs champs à supprimer.

Remarques

L’instruction ALTER TABLE permet de modifier une table existante de plusieurs manières. Vous pouvez :

  • Utilisez ADD COLUMN pour ajouter un champ à la table. Vous devez pour cela spécifier le nom du champ, le type des données et éventuellement la taille du champ (pour les champs texte et binaires). Par exemple, l'instruction suivante ajoute un champ texte de 25 caractères appelé Notes à la table Employees :

      ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
    

    Vous pouvez également définir un index sur ce champ. Pour plus d’informations sur les index à champ unique, voir CONSTRAINT, clause.

    Si vous spécifiez NOT NULL pour un champ, les nouveaux enregistrements doivent disposer de données valides dans ce champ.

  • Utilisez ALTER COLUMN pour changer le type des données d'un champ existant. Vous devez pour cela spécifier le nom du champ, le nouveau type des données et éventuellement la taille du champ (pour les champs texte et binaires). Par exemple, l'instruction suivante change le type des données d'un champ ZipCode de la table Employees en remplaçant l'entier qui s'y trouvait par du texte comportant 10 caractères :

      ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
    
  • Utilisez l’instruction ADD CONSTRAINT pour ajouter un index multichamp. Pour plus d’informations sur les index multichamps, voir CONSTRAINT, clause.

  • Utilisez DROP COLUMN pour supprimer un champ. Vous ne devez pour cela spécifier que le nom du champ.

  • Utilisez DROP CONSTRAINT pour supprimer un index de plusieurs champs. Vous ne devez pour cela spécifier que le nom de l'index suivant le mot réservé CONSTRAINT.

Remarque

  • Vous ne pouvez pas ajouter ou supprimer plus d'un champ ou d'un index à la fois.
  • Vous pouvez utiliser l’instruction CREATE INDEX pour ajouter un index d’un ou de plusieurs champs à une table et l’instruction ALTER TABLE ou DROP pour supprimer un index créé avec ALTER TABLE ou CREATE INDEX.
  • Vous pouvez utiliser l’instruction NON NULL sur un champ unique ou à l’intérieur d’une clause CONSTRAINT nommée qui s’applique à une instruction CONSTRAINT nommée portant sur un ou plusieurs champs. Toutefois, vous ne pouvez appliquer la restriction NON NULL qu’une seule fois à un champ. Une tentative d’appliquer cette restriction plusieurs fois génère une erreur d’exécution.

Exemple

Dans cet exemple, un champ Salary avec le type de données Money est ajouté à la table Employees.

    Sub AlterTableX1() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
     
        ' Add the Salary field to the Employees table  
        ' and make it a Money data type. 
        dbs.Execute "ALTER TABLE Employees " _ 
            & "ADD COLUMN Salary MONEY;" 
     
        dbs.Close 
     
    End Sub 

Dans cet exemple, le type de données Money du champ Salary est remplacé par Char.

    Sub AlterTableX2() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
     
        ' Modify the existing Salary field of the Employees table  
        ' by changing it to a CHAR data type. 
        dbs.Execute "ALTER TABLE Employees " _ 
            & "ALTER COLUMN Salary CHAR(20);" 
     
        dbs.Close 
     
    End Sub 

Dans cet exemple, le champ Salary est supprimé de la table Employees.

    Sub AlterTableX3() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
     
        ' Delete the Salary field from the Employees table. 
        dbs.Execute "ALTER TABLE Employees " _ 
            & "DROP COLUMN Salary;" 
     
        dbs.Close 
     
    End Sub

Dans cet exemple, une clé étrangère est ajoutée à la table Orders. La clé étrangère est basée sur le champ EmployeeID et fait référence au champ EmployeeID de la table Employees. Vous n'avez pas besoin d'indiquer le champ EmployeeID à la suite de la table Employees dans la clause REFERENCES, car EmployeeID est la clé primaire de la table Employees.

    Sub AlterTableX4() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
     
        ' Add a foreign key to the Orders table. 
        dbs.Execute "ALTER TABLE Orders " _ 
            & "ADD CONSTRAINT OrdersRelationship " _ 
            & "FOREIGN KEY (EmployeeID) " _ 
            & "REFERENCES Employees (EmployeeID);" 
     
        dbs.Close 
     
    End Sub 

Dans cet exemple, la clé étrangère est supprimée de la table Orders.

    Sub AlterTableX5() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
     
        ' Remove the OrdersRelationship foreign key from 
        ' the Orders table. 
        dbs.Execute "ALTER TABLE Orders " _ 
            & "DROP CONSTRAINT OrdersRelationship;" 
     
        dbs.Close 
     
    End Sub