La commande ALTER TABLE est une requête permettant la modification d'une table en ajoutant, en supprimant ou en changeant les colonnes, leur définition ou les contraintes.
Syntaxe pour OracleALTER TABLE Nom_Table
|
{ MODIFY CONSTRAINT nom_contrainte définition_contrainte
|
DROP
{ PRIMARY KEY | UNIQUE ( nom_colonne [, nom_colonneN] ) }
| CONSTRAINT nom_contrainte
}
|
{ ADD nom_colonne type_donnée [, nom_colonneN type_donnée ]
| MODIFY ( nom_colonne [type_donnée] [ définition_contrainte ]
[, nom_colonneN [type_donnée] [ définition_contrainte ] ]
| DROP [ COLUMN ]
nom_colonne | ( nom_colonne [, nom_colonneN ] )
[ CASCADE CONSTRAINT ] | INVALIDATE
}
Syntaxe pour SQL ServerALTER TABLE table
{ [ ALTER COLUMN nom_colonne nouveau_type ]
| ADD
{ [ nom_colonne nouveau_type ]
| nom_colonne AS expression_colonne_calculée
} [ ,...n ]
| [ WITH CHECK | WITH NOCHECK ] ADD
{ définition_contrainte } [ ,...n ]
| DROP
{ [ CONSTRAINT ] nom_contrainte
| COLUMN nom_colonne } [ ,...n ]
| { CHECK | NOCHECK } CONSTRAINT
{ ALL | nom_contrainte [ ,...n ] }
La commande ALTER TABLE est très complète puisqu'elle permet :
ALTER TABLE tbl_produit ADD CONSTRAINT chk_code
CHECK (num <= 100)
DISABLE CONSTRAINT chk_code;
CREATE TABLE tbl_produit ( num INTEGER PRIMARY KEY)
GO
ALTER TABLE tbl_produit
ADD designation VARCHAR(50) NULL,
description VARCHAR(255) NULL,
code_magasin VARCHAR(12) UNIQUE,
prix REAL NOT NULL
GO
ALTER TABLE tbl_produit
MODIFY CONSTRAINT chk_code
CHK ( num >= 0 AND code <= 1000000000 )
ENABLE CONSTRAINT chk_code;
ALTER TABLE tbl_produit
DROP COLUMN code_magasin
GO
ALTER TABLE tbl_produit
DROP PRIMARY KEY
ALTER TABLE tbl_produit
ALTER COLUMN prix DECIMAL(7, 2)
GO |
Les exemples terminés par l'instruction GO sont écrits sous SQL Server, les autres pour Oracle.