5.2.3 ALTER TABLE y ALTER COLUMN

ALTER TABLE

El comando SQL ALTER TABLE se utiliza para modificar la definición (estructura) de una tabla mediante la modificación de la definición de sus columnas. El comando ALTER se utiliza para realizar las siguientes funciones.

1), añadiendo, gota, modificar columnas de la tabla 
2) Agregar y quitar restricciones 
3) Habilitar y deshabilitar las restricciones

Sintaxis para agregar una columna

ALTER TABLE table_name ADD column_name datatype;

Por ejemplo: Para agregar una columna de "experiencia" de la tabla de empleados, la consulta será como

ALTER TABLE employee ADD experience number(3);

Sintaxis para eliminar una columna

ALTER TABLE table_name DROP column_name;

Por ejemplo: Para quitar la columna "ubicación" de la tabla de empleados, la consulta será como

ALTER TABLE employee DROP location;

Sintaxis para modificar una columna

ALTER TABLE table_name MODIFY column_name datatype;

Por ejemplo: Para modificar el sueldo de columna en la tabla de empleados, la consulta sería como

ALTER TABLE employee MODIFY salary number(15,2);

ALTER COLUMN

Especifica que la columna con nombre va a cambiarse o modificarse.

La columna modificada no puede ser ninguna de las siguientes:

  • timestamp data type.">Una columna con un tipo de datos timestamp.

  • La columna ROWGUIDCOL de la tabla.

  • Una columna calculada o usada en una columna calculada.

  • varchar, nvarchar, or varbinary data type, the data type is not changed, and the new size is equal to or greater than the old size, or if the column is changed from not null to null.">Se usa en las estadísticas generadas por la instrucción CREATE STATISTICS a menos que la columna sea del tipo de datos varchar, nvarchar o varbinary, que el tipo de datos no se cambie y que el nuevo tamaño sea igual o mayor que el tamaño anterior, o que la columna se cambie de NOT NULL a NULL. Quite primero las estadísticas con la instrucción DROP STATISTICS. Las estadísticas generadas automáticamente por el optimizador de consultas se quitan automáticamente con ALTER COLUMN.

  • Una columna utilizada en una restricción PRIMARY KEY o [FOREIGN KEY] REFERENCES.

  • Una columna utilizada en una restricción CHECK o UNIQUE. Sin embargo, se permite el cambio de longitud de una columna de longitud variable en una restricción CHECK o UNIQUE.

  • Una columna asociada a la definición predeterminada. No obstante, la longitud, precisión o escala de una columna puede cambiarse si el tipo de datos no se cambia.

    text, ntext and image columns can be changed only in the following ways: ">El tipo de datos de las columnas text, ntext e image puede cambiarse de las formas siguientes:

    • text to varchar(max), nvarchar(max), or xml">text por varchar(max), nvarchar(max) o xml

    • ntext to varchar(max), nvarchar(max), or xml">ntext por varchar(max), nvarchar(max) o xml

    • image to varbinary(max)">image por varbinary(max)