Compartir a través de


Instrucción ALTER TABLE (Microsoft Access SQL)

Se aplica a: Access 2013, Office 2013

Modifica el diseño de una tabla después de que se ha creado con la instrucción CREATE TABLE.

Nota:

El motor de base de datos de Microsoft Access no admite el uso de ALTER TABLE, ni las instrucciones de lenguaje de definición de datos (DDL), con bases de datos que no sean de Microsoft Access. En su lugar, use los métodos Create de DAO.

Sintaxis

Tabla ALTER TABLE { ADD { COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] | Tipo de campo ALTER COLUMN[(size)] | CONSTRAINT multifieldindex} | DROP {COLUMN field I CONSTRAINT indexname} }

La instrucción ALTER TABLE consta de los siguientes elementos:

Elemento

Descripción

table

Nombre de la tabla que se va a modificar.

campo

Nombre del campo que se va a agregar o eliminar en la tabla. O bien, nombre del campo que se va a modificar en la tabla.

tipo

Tipo de datos del campo.

size

Tamaño del campo en caracteres (sólo los campos de tipo texto y binario).

index

El índice de campo. Para obtener más información acerca de cómo construir este índice, vea la Cláusula CONSTRAINT.

índiceDeVariosCampos

La definición de un índice de varios campos que se va a agregar a tabla. Para obtener más información acerca de cómo construir este índice, vea la Cláusula CONSTRAINT.

nombre_del_índice

Nombre del índice de varios campos que se eliminará.

Comentarios

Mediante la instrucción ALTER TABLE se puede modificar una tabla existente de varias formas. Podrá:

  • Usar ADD COLUMN para agregar un campo nuevo a la tabla. Debe especificar el nombre del campo, el tipo de datos y (para los campos de tipo texto y binario) un tamaño opcional. Por ejemplo, la siguiente instrucción agrega un campo de texto de 25 caracteres llamado Notes a la tabla Employees:

      ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
    

    También se puede definir un índice en ese campo. Para obtener más información sobre los índices de un solo campo, consulte Cláusula CONSTRAINT.

    Si especifica NOT NULL en un campo, será obligatorio que los nuevos registros tengan datos válidos en ese campo.

  • Usar ALTER COLUMN para cambiar el tipo de datos de un campo existente. Debe especificar el nombre del campo, el nuevo tipo de datos y un tamaño opcional para los campos de tipo texto y binario. Por ejemplo, la siguiente instrucción cambia el tipo de datos de un campo de la tabla Employees llamado ZipCode (definido originalmente como Integer) a un campo Texto de 10 caracteres:

      ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
    
  • Use ADD CONSTRAINT para agregar un índice de varios campos. Para obtener más información acerca de los índices de varios campos, vea la Cláusula CONSTRAINT.

  • Usar DROP COLUMN para eliminar un campo. Sólo debe especificar el nombre del campo.

  • Usar DROP CONSTRAINT para eliminar un índice de varios campos. Sólo debe especificar el nombre del índice a continuación de la palabra reservada CONSTRAINT.

Nota:

  • No se puede agregar o eliminar más de un campo o índice a la vez.
  • Puede usar la instrucción CREATE INDEX para agregar un índice de un solo campo o de varios campos a un tabla y puede usar ALTER TABLE o la instrucción DROP para eliminar un índice creado con ALTER TABLE o CREATE INDEX.
  • Puede usar NOT NULL en un solo campo o en una cláusula CONSTRAINT con nombre que se aplica a un solo campo o a una cláusula CONSTRAINT con nombre de varios campos. Pero solo puede aplicar la restricción NOT NULL una vez a un campo. Intentar aplicar esta restricción más de una vez produce un error en tiempo de ejecución.

Ejemplo

En este ejemplo, se agrega un campo Salary con el tipo de datos Money a la tabla 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 

En este ejemplo, se cambia el tipo de datos del campo Salary de Money a 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 

En este ejemplo, se quita el campo Salary de la tabla 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

En este ejemplo, se agrega una clave externa a la tabla Orders. La clave externa se basa en el campo EmployeeID y hace referencia al campo EmployeeID de la tabla Employees. En este ejemplo, no tiene que enumerar el campo EmployeeID después de la tabla Employees en la cláusula REFERENCES porque EmployeeID es la clave principal de la tabla 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 

En este ejemplo, se elimina la clave externa de la tabla 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