ALTER TABLE-Anweisung (Microsoft Access SQL)

Gilt für: Access 2013, Office 2013

Ändert den Entwurf einer Tabelle, nachdem diese mit der CREATE TABLE-Anweisung erstellt wurde.

Hinweis

Vom Microsoft Access-Datenbankmodul wird die Verwendung von ALTER TABLE- oder anderen DDL-Anweisungen (Data Definition Language, Datendefinitionssprache) in Nicht-Microsoft Access-Datenbanken nicht unterstützt. Verwenden Sie stattdessen die Create-Methoden von DAO.

Syntax

ALTER TABLE-Tabelle {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] | ALTER COLUMN-Feldtyp[(Size)] | CONSTRAINT multifieldindex} | DROP {COLUMN field I CONSTRAINT indexname} }

Die ALTER TABLE-Anweisung verfügt über drei Komponenten:

Komponente

Beschreibung

table

Der Name der zu ändernden Tabelle.

Feld

Der Name des Felds, das der Tabelle hinzugefügt bzw. aus ihr gelöscht werden soll, oder der Name des in der Tabelle zu ändernden Felds.

Typ

Der Datentyp der Feld-Komponente.

size

Die Feldgröße in Zeichen (nur Text- und binäre Felder).

Index

Der Index für Feld. Weitere Informationen zum Aufbau des Indexes finden Sie unter CONSTRAINT-Klausel.

multifieldindex

Die Definition eines zusammengesetzten Index, der zur Tabelle hinzugefügt werden soll. Weitere Informationen zum Aufbau des Indexes finden Sie unter CONSTRAINT-Klausel.

Indexname

Der Name des aus mehreren Feldern bestehenden Indexes, der entfernt werden soll.

Bemerkungen

Mithilfe der ALTER TABLE-Anweisung können Sie eine bestehende Tabelle auf verschiedene Arten ändern. Sie können:

  • Verwenden Sie ADD COLUMN, um der Tabelle ein neues Feld hinzuzufügen. Sie geben den Feldnamen, den Datentyp und (für Text- und binäre Felder) optional eine Größe an. In der Anweisung im folgenden Beispiel wird der Employees-Tabelle (Personal) ein 25 Zeichen langes Textfeld namens Notes (Bemerkungen) hinzugefügt:

      ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
    

    Sie können auch einen Index für dieses Feld definieren. Weitere Informationen zu Einzelfeldindexes finden Sie unter CONSTRAINT-Klausel.

    Wenn Sie für ein Feld NICHT NULL angeben, sind neue Datensätze erforderlich, damit gültige Daten für das Feld vorhanden sind.

  • Verwenden Sie ALTER COLUMN, um den Datentyp eines bestehenden Felds zu ändern. Sie geben den Feldnamen, den Datentyp und für Text- und binäre Felder optional eine Größe an. In der Anweisung im folgenden Beispiel wird der Datentyp des ZipCode-Felds (PLZ) in der Employees-Tabelle (ursprünglich Integer) in ein 10 Zeichen langes Textfeld geändert:

      ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
    
  • Sie können ADD CONSTRAINT verwenden, um einen zusammengesetzten Index hinzuzufügen. Weitere Informationen zu zusammengesetzten Indexes finden Sie unter CONSTRAINT-Klausel.

  • Verwenden Sie DROP COLUMN, um ein Feld zu löschen. Sie geben lediglich den Namen des Felds an.

  • Verwenden Sie DROP CONSTRAINT, um einen aus mehreren Feldern bestehenden Index zu löschen. Sie geben lediglich den Namen des Indexes, gefolgt vom reservierten Wort CONSTRAINT, an.

Hinweis

  • Sie können immer nur ein Feld bzw. einen Index gleichzeitig hinzufügen oder löschen.
  • Mithilfe der CREATE INDEX-Anweisung können Sie einer Tabelle einen Index mit einem oder mehreren Feldern hinzufügen, und Sie können ALTER TABLE oder die DROP-Anweisung zum Löschen eines mit ALTER TABLE oder CREATE INDEX erstellten Indexes verwenden.
  • Sie können NOT NULL für ein einzelnes Feld oder in einer benannten CONSTRAINT-Klausel verwenden, die entweder für ein einzelnes Feld oder für mehrere Felder mit dem Namen CONSTRAINT gilt. Sie können die NOT NULL-Einschränkung jedoch nur einmal auf ein Feld anwenden. Der Versuch, diese Einschränkung mehrmals zu verwenden, führt zu einem Laufzeitfehler.

Beispiel

In diesem Beispiel wird der Employees-Tabelle (Personal) ein Salary-Feld (Gehalt) mit dem Money-Datentyp hinzugefügt.

    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 

In diesem Beispiel wird der Datentyp des Salary-Felds von Money in Char geändert.

    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 

In diesem Beispiel wird das Salary-Feld aus der Employees-Tabelle entfernt.

    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

Im folgenden Beispiel wird der Orders-Tabelle (Bestellungen) ein Fremdschlüssel hinzugefügt. Der Fremdschlüssel basiert und verweist auf das EmployeeID-Feld (Personal-Nr) in der Employees-Tabelle. In diesem Beispiel muss das EmployeeID-Feld nicht nach der Employees-Tabelle in der REFERENCES-Klausel aufgelistet werden, da es sich bei EmployeeID um den Primärschlüssel der Employees-Tabelle handelt.

    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 

In diesem Beispiel wird der Fremdschlüssel aus der Orders-Tabelle entfernt.

    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