ALTER TABLE

Utilice el mandato ALTER TABLE para cambiar las características de un tabla existente y sus columnas. Puede añadir, eliminar y modificar columnas y establecer manualmente el valor de los campos de tipo INCR.

Restricción: No puede modificar las tablas del sistema.

Sintaxis

ALTER TABLE [database_name.]table_name
 SET INCR value
 ADD [COLUMN] column_name data_type [ NODEFAULT | NOMODIFY | HIDDEN ]
 DROP [COLUMN] column_name
 ALTER [COLUMN] column_name SET NOMODIFY { TRUE | FALSE }
 ALTER [COLUMN] column_name SET HIDDEN { TRUE | FALSE }
 ALTER [COLUMN] column_name SET NODEFAULT { TRUE | FALSE }
 ALTER [COLUMN] column_name SET WIDTH value;

Puede especificar más de un valor ADD, DROP o ALTER en un único mandato ALTER TABLE.

Ejemplo

alter table mytab add col3 real;

Establecer manualmente valores de incremento

Una columna de tipo INCR se utiliza para asignar a cada fila de una tabla un número exclusivo, por ejemplo, en la columna Serial de la tabla alerts.status. En cada inserción, el valor de incremento actual se copia en la nueva fila y, a continuación, aumenta para la fila siguiente. Puede utilizar la cláusula SET INCR (establecer incremento) para establecer el valor de incremento de las filas subsiguientes. Esto es útil, por ejemplo, si desea cambiar el valor de serie que se asigna a las nuevas alertas en la tabla alerts.status.

La sintaxis es la siguiente:
ALTER TABLE table_name SET INCR value
Donde table_name es el nombre de una tabla que contiene una columna de tipo INCR y value es un entero.
Por ejemplo, para ejecutar el procedimiento con la interfaz interactiva de SQL, utilice los mandatos siguientes:
1> alter table alerts.status set incr 20100
2> go
Nota: Para evitar valores duplicados, no puede establecer un valor de incremento que sea el mismo que el valor de una fila existente. Además, no puede establecer un valor de INCR que provoque que inserciones futuras tengan los mismos valores que filas ya existentes. El valor de INCR nuevo no puede estar entre las filas existentes mínima y máxima y debe estar entre 1.000.000.000 por debajo del valor mínimo de la tabla o 1.000.000.000 por encima del valor máximo existente.
Nota:

Funcionalidad entregada en el fixpack 23En el fixpack 23, el comportamiento se ha cambiado para evitar que el nuevo valor de INCR se establezca en un valor que esté dentro de 1.000.000 de cualquier valor existente en la tabla. INCR ahora también se tiene en cuenta la acomodación de valores.