In Chapter 3, “SQL Statements,” the ALTER TABLE statement description does not define “column-modification.”
ALTER column-name column-modification Change the definition of a column. The permitted modifications are as follows:
SET DEFAULT default-value Change the default value of an existing column in a table. You can also use the MODIFY clause for this task, but ALTER is SQL/92 compliant, and MODIFY is not. Modifying a default value does not change any existing values in the table.
DROP DEFAULT Remove the default value of an existing column in a table. You can also use the MODIFY clause for this task, but ALTER is SQL/92 compliant, and MODIFY is not. Dropping a default does not change any existing values in the table.
ADD Add a named constraint or a CHECK condition to the column. The new constraint or condition applies only to operations on the table after its definition. The existing values in the table are not validated to confirm that they satisfy the new constraint or condition.
CONSTRAINT column-constraint-name The optional column constraint name allows you to modify or drop individual constraints at a later time, rather than having to modify the entire column constraint.
SET COMPUTE (expression) Change the expression associated with a computed column. The values in the column are recalculated when the statement is executed, and the statement fails if the new expression is invalid.
DROP COMPUTE Change a column from being a computed column to being a non-computed column. This statement does not change any existing values in the table.
Another ALTER clause is incorrect and should read as follows:
| ALTER CONSTRAINT constraint-name CHECK ( new-condition )