ALTER TABLE (SQL Server Compact Edition)

Modifie une définition de table en changeant, ajoutant ou supprimant des colonnes et des contraintes.

Syntaxe

ALTER TABLE table_name
{ [ ALTER COLUMN column_name 
   {DROP DEFAULT 
   | SET DEFAULT constant_expression 
   | IDENTITY [ ( seed , increment ) ]
   } 
| ADD 
   { < column_definition > | < table_constraint > } [ ,...n ] 
| DROP 
   { [ CONSTRAINT ] constraint_name 
   | COLUMN column }
] }
< column_definition > ::= 
   { column_name data_type } 
   [ [ DEFAULT constant_expression ] 
      | IDENTITY [ ( seed , increment ) ] 
   ] 
   [ROWGUIDCOL]
   [ < column_constraint > ] [ ...n ] ]
< column_constraint > ::= 
   [ NULL | NOT NULL ] 
   [ CONSTRAINT constraint_name ] 
   { 
      | { PRIMARY KEY | UNIQUE } 
      | REFERENCES ref_table [ (ref_column) ] 
      [ ON DELETE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ] 
      [ ON UPDATE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ]
   }
< table_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ { PRIMARY KEY | UNIQUE } 
      { ( column [ ,...n ] ) } 
      | FOREIGN KEY 
        ( column [ ,...n ] )
        REFERENCES ref_table [ (ref_column [ ,...n ] ) ] 
      [ ON DELETE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ] 
      [ ON UPDATE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ] 
   }

Arguments

  • table_name
    Nom de la table à modifier.

    Remarque :
    Les noms de tables doivent respecter les règles applicables aux identificateurs. L'argument table_name doit être unique dans la base de données et peut contenir jusqu'à 128 caractères.
  • ALTER COLUMN
    Indique que la colonne donnée doit être changée ou modifiée.
  • column_name
    Nom d'une colonne dans la table. Les noms de colonnes doivent respecter les règles applicables aux identificateurs et être uniques dans la table.
  • data_type
    Spécifie le type de données de la colonne. Pour plus d'informations sur les types de données, consultez Types de données.
  • DEFAULT
    Spécifie la valeur de la colonne lorsqu'aucune valeur n'est explicitement fournie lors d'une insertion. Les définitions DEFAULT sont applicables à toute colonne, à l'exception de celles définies par la propriété IDENTITY. Les définitions DEFAULT sont supprimées lorsque la table l'est également. Seule une valeur constante, telle qu'une chaîne de caractères ou une fonction de date, peut être utilisée comme valeur par défaut.
  • IDENTITY
    Indique que la nouvelle colonne est une colonne d'identité. Lorsqu'une ligne est ajoutée à la table, Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) fournit une valeur incrémentielle pour la colonne. Vous ne pouvez affecter la propriété IDENTITY qu'aux colonnes int ou bigint.
  • seed
    Valeur utilisée pour la première ligne chargée dans la table.
  • increment
    Valeur incrémentielle ajoutée à la valeur d'identité de la ligne précédemment chargée.
  • ADD
    Indique qu'une ou plusieurs définitions de colonnes ou contraintes de table sont ajoutées.
  • DROP { [CONSTRAINT] constraint_name| COLUMN column}
    Indique que constraint_name ou column_name doit être supprimé de la table.
  • ROWGUIDCOL
    Indique que la nouvelle colonne est une colonne d'identificateur global unique de ligne. Vous ne pouvez définir qu'une colonne uniqueidentifier par table en tant que colonne ROWGUIDCOL. Vous ne pouvez affecter la propriété ROWGUIDCOL qu'à une colonne uniqueidentifier.

    ROWGUIDCOL génère automatiquement les valeurs des nouvelles lignes insérées dans la table.

  • NULL | NOT NULL
    Mots clés qui indiquent si les valeurs NULL sont autorisées dans la colonne. Le mot clé NULL n'est pas une contrainte à proprement parler, mais vous pouvez le spécifier de la même manière que le mot clé NOT NULL.
  • CONSTRAINT
    Mot clé facultatif indiquant le début de la définition d'une contrainte PRIMARY KEY, UNIQUE ou FOREIGN KEY. Les contraintes sont des propriétés particulières qui appliquent l'intégrité des données et créent des types spéciaux d'index pour la table et ses colonnes.
  • constraint_name
    Nom d'une contrainte. L'argument constraint_name est facultatif et doit être unique dans une base de données. Si l'argument constraint_name n'est pas spécifié, SQL Server Compact Edition génère un nom de contrainte.
  • PRIMARY KEY
    Contrainte appliquant à l'aide d'un index unique l'intégrité d'entité pour une ou plusieurs colonnes spécifiques. Vous ne pouvez créer qu'une contrainte PRIMARY KEY par table.
  • UNIQUE
    Contrainte fournissant à l'aide d'un index unique l'intégrité d'entité pour une ou plusieurs colonnes spécifiques. Les colonnes d'une contrainte UNIQUE peuvent être NULL, mais une seule valeur NULL est autorisée par colonne. Une table peut posséder plusieurs contraintes UNIQUE.

    Remarque :
    SQL Server Compact Edition peut utiliser des index pour appliquer des contraintes PRIMARY KEY et UNIQUE. Il est recommandé de ne pas s'appuyer sur cette possibilité ni de modifier les index créés dans le cadre d'une contrainte.
  • FOREIGN KEY...REFERENCES
    Contrainte qui applique l'intégrité référentielle aux données d'une colonne. Les contraintes FOREIGN KEY nécessitent que chaque valeur de la colonne existe dans la colonne spécifiée de la table référencée.
  • ref_table
    Nom de la table référencée par la contrainte FOREIGN KEY.
  • ( ref_column [ ,...n ] )
    Colonne, ou liste de colonnes, de la table référencée par la contrainte FOREIGN KEY.
  • ON DELETE {CASCADE | NO ACTION |SET DEFAULT | SET NULL}
    Spécifie l'opération appliquée à une ligne de la table créée, lorsque cette ligne possède une relation référentielle et que la ligne référencée est supprimée de la table parent. La valeur par défaut est NO ACTION. Pour plus d'informations, consultez la section « Notes », plus loin dans cette rubrique.
  • ON UPDATE {CASCADE | NO ACTION | SET DEFAULT | SET NULL}
    Spécifie l'opération appliquée à une ligne de la table créée, lorsque cette ligne possède une relation référentielle et que la ligne référencée est mise à jour dans la table parent. La valeur par défaut est NO ACTION. Pour plus d'informations, consultez la section « Notes », plus loin dans cette rubrique.
  • column
    Colonne ou liste de colonnes, entre parenthèses, utilisée dans les contraintes de table et indiquant les colonnes impliquées dans leur définition.
  • n
    Espace réservé indiquant que l'élément précédent peut être répété n fois.

Notes

Pour ON DELETE ou ON UPDATE, la ligne est mise à jour dans la table de référence si la ligne référencée correspondante est actualisée dans la table parent et que l'option CASCADE est spécifiée. Si la valeur NO ACTION est spécifiée, SQL Server Compact Edition renvoie une erreur et annule l'action de mise à jour appliquée à la ligne référencée dans la table parente.

Par exemple, supposons qu'une base de données contient les deux tables A et B. La table A possède une relation référentielle avec la table B : la clé étrangère A.ItemID référence la clé primaire B.ItemID.

Si une instruction UPDATE est exécutée sur une ligne de la table B et qu'une action ON UPDATE CASCADE est spécifiée pour A.ItemID, SQL Server Compact Edition vérifie si la table A contient une ou plusieurs lignes dépendantes. Si tel est le cas, les lignes dépendantes de la table A sont mises à jour, de même que la ligne référencée dans la table B.

Sinon, si la valeur NO ACTION est spécifiée, SQL Server Compact Edition renvoie une erreur et annule l'action de mise à jour sur la ligne référencée de la table B lorsqu'au moins une ligne de la table A la référence.

Exemples de code

A. Modification des valeurs de départ et incrémentielle de la colonne d'identité

L'exemple ci-dessous modifie les valeurs de départ et incrémentielle de la colonne d'identité.

CREATE TABLE MyCustomers (CustID INTEGER IDENTITY (100,1) PRIMARY KEY, CompanyName NvarChar (50))
INSERT INTO MyCustomers (CompanyName) VALUES ('A. Datum Corporation')
ALTER TABLE MyCustomers ALTER COLUMN CustId IDENTITY (200, 2)
B. Ajout d'une valeur par défaut à une colonne

L'exemple ci-dessous modifie la colonne CompanyName de manière à ce qu'elle possède une valeur par défaut.

ALTER TABLE MyCustomers ALTER COLUMN CompanyName SET DEFAULT 'A. Datum Corporation'
C. Suppression d'une valeur par défaut de la colonne

L'exemple ci-dessous modifie la colonne CompanyName de manière à ce qu'elle ne possède pas de valeur par défaut.

ALTER TABLE MyCustomers ALTER COLUMN CompanyName DROP DEFAULT

Voir aussi

Aide et information

Assistance sur SQL Server Compact Edition