Поделиться через


Инструкция ALTER TABLE (Microsoft Access SQL)

Область применения: Access 2013, Office 2013

Служит для изменения макета таблицы после того, как она была создана с помощью инструкции CREATE TABLE.

Примечание.

Ядро СУБД Microsoft Access не поддерживает использование ALTER TABLE или любых других инструкций DDL с базами данных, которые не основаны на Microsoft Access. Используйте вместо этого методы DAO Create.

Синтаксис

ALTER TABLE таблица {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] | Alter COLUMN field type[(size)] | CONSTRAINT multifieldindex} | DROP {COLUMN field I CONSTRAINT indexname} }

Инструкция ALTER TABLE включает в себя следующие элементы:

Часть

Описание

таблица

Имя таблицы, которую требуется изменить.

поле

Имя поля, которое будет добавлено в таблицу, удалено из нее или изменено в ней.

тип

Тип данных поля.

размер

Размер поля в знаках (только для полей с типом данных TEXT и BINARY).

индекс

Индекс поля. Дополнительные сведения о создании этого индекса см. в статье, посвященной предложению CONSTRAINT.

индекс_набора_полей

Индекс набора полей, добавляемых в таблицу. Дополнительные сведения о создании этого индекса см. в статье, посвященной предложению CONSTRAINT.

имя_индекса

Имя удаляемого индекса набора полей.

Примечания

Изменить существующую таблицу с помощью инструкции ALTER TABLE можно несколькими способами. Вы можете выполнить указанные ниже действия.

  • Добавить поле в таблицу, используя инструкцию ADD COLUMN. Требуется указать имя поля и тип данных. Для полей с типом данных TEXT и BINARY можно также указать размер. Например, следующая инструкция добавляет поле Notes с типом данных TEXT размером 25 знаков в таблицу Employees:

      ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
    

    Для этого поля можно также указать индекс. Дополнительные сведения об индексах одного поля см. в статье, посвященной предложению CONSTRAINT.

    Если для поля определено свойство NOT NULL, поле обязательно должно содержать допустимые данные.

  • Изменить тип данных для существующего поля, используя инструкцию ALTER COLUMN. Требуется указать имя поля и новый тип данных. Для полей с типом данных TEXT и BINARY можно также указать размер. Например, следующая инструкция в таблице Employees изменит тип данных поля ZipCode (начальный тип данных — INTEGER) на тип данных TEXT размером 10 знаков:

      ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
    
  • Добавить индекс набора полей, используя инструкцию ADD CONSTRAINT. Дополнительные сведения об индексах набора полей см. в статье, посвященной предложению CONSTRAINT.

  • Удалить поле, используя инструкцию DROP COLUMN. Требуется указать только имя поля.

  • Использовать DROP CONSTRAINT, чтобы удалить индекс набора полей. Требуется указать только имя индекса после зарезервированного слова CONSTRAINT.

Примечание.

  • Невозможно одновременно добавить или удалить несколько полей или индексов.
  • Чтобы добавить индекс для одного поля или для набора полей в таблице, используйте инструкцию CREATE INDEX. Чтобы удалить индекс, созданный с помощью инструкции ALTER TABLE или CREATE INDEX, можно использовать инструкцию ALTER TABLE или DROP.
  • Свойство NOT NULL можно задавать для одного поля или внутри именованного предложения CONSTRAINT для одного или нескольких полей. Свойство NOT NULL для поля можно задать только один раз. Попытка определить это свойство повторно приведет к ошибке выполнения.

Пример

В этом примере добавляется поле Salary (Заработная плата) с типом данных Money в таблицу 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 

В этом примере тип данных поля Salary (Заработная плата) изменяется с Money на 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 

В этом примере удаляется поле Salary (Заработная плата) из таблицы 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

В этом примере добавляется внешний ключ для таблицы Orders (Заказы). Внешний ключ основан на поле EmployeeID (Код сотрудника) и ссылается на поле EmployeeID (Код сотрудника) таблицы Employees (Сотрудники). В этом примере не требуется перечислять поле EmployeeID (Код сотрудника) после таблицы Employees (Сотрудники) в предложении REFERENCES, так как EmployeeID — это первичный ключ таблицы 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 

В этом примере удаляется внешний ключ из таблицы 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