Partager via


column_definition (Transact-SQL)

Mis à jour : 5 décembre 2005

Spécifie les propriétés d'une colonne ajoutée à une table à l'aide de ALTER TABLE.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

column_name [ type_schema_name. ] type_name
    [ 
                ( { precision [ , scale ] | max | 
            [ { CONTENT | DOCUMENT } ] xml_schema_collection } ) 
    ] 
    [ 
        [ CONSTRAINT constraint_name ] DEFAULT constant_expression 
             [ WITH VALUES ] 
        | IDENTITY [ (seed , increment ) ] [ NOT FOR REPLICATION ] 
    ] 
    [ ROWGUIDCOL ] 
    [ COLLATE < collation_name > ] 
    [ <column_constraint> [ ...n ] ] 

Arguments

  • column_name
    Nom de la colonne à modifier, à ajouter ou à supprimer. column_name peut comporter entre 1 et 128 caractères. L'argument column_name peut être omis dans le cas de nouvelles colonnes créées avec le type de données timestamp. Si aucune valeur de column_name n'est spécifiée pour une colonne de type de données timestamp, le nom timestamp est utilisé.
  • [ type_schema_name**.** ] type_name
    Type de données de la colonne ajoutée et schéma auquel elle appartient.

    Valeurs possibles de type_name :

    • un type de données système Microsoft SQL Server ;
    • un type de données d'alias basé sur un type de données système SQL Server. Les types de données d'alias doivent être créés à l'aide de CREATE TYPE avant de pouvoir être utilisés dans une définition de table ;
    • un type Microsoft .NET Framework défini par l'utilisateur et le schéma auquel il appartient. Un type de données .NET Framework doit être créé à l'aide de CREATE TYPE avant de pouvoir être utilisé dans une définition de table.

    Si la valeur de type_schema_name n'est pas précisée, le moteur de base de données SQL Server 2005 de Microsoft pointe sur type_name dans l'ordre suivant :

    • Le type de données système SQL Server
    • Le schéma par défaut de l'utilisateur actuel dans la base de données active
    • Le schéma dbo dans la base de données active
  • precision
    Précision du type de données spécifié. Pour plus d'informations sur les valeurs de précision valides, consultez Précision, échelle et longueur.
  • max
    S'applique uniquement aux types de données varchar, nvarchar et varbinary. Ceux-ci permettent de stocker 2^31 octets de données de caractères et binaires ou 2^30 octets de données Unicode.
  • CONTENT
    Spécifie que chaque instance du type de données xml dans column_name peut comprendre plusieurs éléments de niveau supérieur. CONTENT s'applique uniquement au type de données xml et ne peut être spécifié que si xml_schema_collection l'est également. Si celui-ci n'est pas spécifié, CONTENT détermine le comportement par défaut.
  • DOCUMENT
    Spécifie que chaque instance du type de données xml dans column_name ne peut comprendre qu'un élément de niveau supérieur. DOCUMENT s'applique uniquement au type de données xml et ne peut être spécifié que si xml_schema_collection l'est également.
  • xml_schema_collection
    S'applique uniquement au type de données xml pour l'association d'une collection de schémas XML au type. Avant d'inclure une colonne xml dans un schéma, vous devez d'abord créer celui-ci dans la base de données à l'aide de CREATE XML SCHEMA COLLECTION.
  • [ CONSTRAINT constraint_name ]
    Spécifie le début d'une définition DEFAULT. Pour conserver la compatibilité avec les versions antérieures de SQL Server, vous pouvez affecter un nom de contrainte à une définition DEFAULT. constraint_name doit respecter les règles applicables aux identificateurs, mais le nom ne peut pas commencer par un signe dièse (#). En l'absence de constraint_name, un nom généré par le système est affecté à la définition DEFAULT.
  • DEFAULT
    Mot clé spécifiant la valeur par défaut de la colonne. Une définition DEFAULT peut servir à définir les valeurs d'une nouvelle colonne dans les lignes de données existantes. Les définitions DEFAULT ne peuvent pas être appliquées aux colonnes de type timestamp ou à celles qui possèdent une propriété IDENTITY. Si une valeur par défaut est indiquée pour une colonne de type personnalisé, ce dernier doit prendre en charge une conversion implicite de constant_expression au type de données défini par l'utilisateur.
  • constant_expression
    Valeur littérale, valeur NULL ou fonction système utilisée comme valeur par défaut de la colonne. Si cet argument est utilisé avec une colonne configurée pour être d'un type défini par l'utilisateur .NET Framework, l'implémentation du type doit prendre en charge une conversion implicite de constant_expression dans ce type.
  • WITH VALUES
    Spécifie que la valeur donnée dans DEFAULT, constant_expression, est stockée dans une nouvelle colonne ajoutée aux lignes existantes. Si la colonne ajoutée accepte les valeurs NULL et que l'option WITH VALUES est spécifiée, la valeur par défaut est stockée dans la nouvelle colonne ajoutée aux lignes existantes. Si WITH VALUES n'est pas spécifiée pour les colonnes acceptant les valeurs NULL, la valeur NULL est stockée dans la nouvelle colonne dans des lignes existantes. Si la nouvelle colonne n'accepte pas les valeurs NULL, la valeur par défaut est stockée dans des nouvelles lignes, que l'option WITH VALUES soit spécifiée ou pas.
  • IDENTITY
    Spécifie que la nouvelle colonne est une colonne d'identité. Le moteur de base de données SQL Server fournit une valeur incrémentielle unique pour la colonne. Lorsque vous ajoutez des colonnes d'identification à des tables existantes, les numéros d'identité sont ajoutés aux lignes existantes de la table et les valeurs de départ et d'incrément sont appliquées dans l'ordre dans lequel ces lignes ont été initialement ajoutées. Des numéros d'identité sont également générés pour toutes les nouvelles lignes qui sont ajoutées.

    Les colonnes d'identité sont normalement utilisées avec les contraintes PRIMARY KEY comme identificateur unique de ligne pour la table. La propriété IDENTITY peut être affectée à une colonne tinyint, smallint, int, bigint, decimal(p,0) ou numeric(p,0). Une seule colonne d'identité peut être créée par table. Vous ne pouvez pas utiliser le mot clé DEFAULT ni les valeurs par défaut liées avec une colonne d'identité. Vous devez spécifier à la fois la valeur de départ et l'incrément ou aucune de ces valeurs. Si aucune valeur n'est spécifiée, la valeur par défaut est de (1,1). Vous ne pouvez pas modifier une colonne de table existante pour ajouter la propriété IDENTITY.

    ms187742.note(fr-fr,SQL.90).gifRemarque :
    L'ajout d'une colonne d'identité à une table publiée n'est pas pris en charge car la réplication de la colonne vers l'Abonné peut aboutir à une non convergence. Les valeurs de la colonne d'identité sur le serveur de publication dépendent de l'ordre dans lequel les lignes de la table affectée sont physiquement stockées. Les lignes pouvant être stockées différemment sur l'Abonné, la valeur de la colonne d'identité peut différer pour les mêmes lignes.

    Pour désactiver la propriété IDENTITY d'une colonne en autorisant l'insertion explicite des valeurs, utilisez SET IDENTITY_INSERT.

  • seed
    Valeur utilisée pour la première ligne chargée dans la table.
  • increment
    Valeur d'incrément ajoutée à la valeur d'identité de la ligne précédemment chargée.
  • ROWGUIDCOL
    Spécifie que la colonne est une colonne d'identificateur unique global de ligne. ROWGUIDCOL peut uniquement être affecté à une colonne uniqueidentifier et une seule colonne uniqueidentifier par table peut être désignée comme colonne ROWGUIDCOL. ROWGUIDCOL ne peut pas être affecté aux colonnes de types de données définis par l'utilisateur.

    ROWGUIDCOL n'assure pas l'unicité des valeurs stockées dans la colonne. En outre, ROWGUIDCOL ne peut de plus générer automatiquement de valeurs pour les nouvelles lignes insérées dans la table. Pour générer des valeurs uniques pour chaque colonne, utilisez la fonction NEWID sur des instructions INSERT, ou définissez la fonction NEWID par défaut pour la colonne. Pour plus d'informations, consultez NEWID (Transact-SQL) et INSERT (Transact-SQL).

  • COLLATE < collation_name>
    Indique le classement de la colonne. Sans autre indication, le classement par défaut de la base de données est attribué à la colonne. Le nom du classement peut être un nom de classement Windows ou SQL. Pour une liste des classements et pour plus d'informations, consultez Nom de classement Windows (Transact-SQL) et Nom du classement SQL (Transact-SQL).

    La clause COLLATE peut être utilisée pour spécifier uniquement les classements des colonnes comportant les types de données char, varchar, nchar et nvarchar.

    Pour plus d'informations sur la clause COLLATE, consultez COLLATE (Transact-SQL).

Notes

Si une nouvelle colonne de type uniqueidentifier est ajoutée, sa valeur par défaut peut utiliser la fonction NEWID() pour générer des valeurs d'identificateur uniques dans la nouvelle colonne, pour chaque ligne existante de la table.

Le moteur de base de données n'impose pas un ordre pour la spécification de DEFAULT, IDENTITY, ROWGUIDCOL ou de contraintes de colonne dans une définition de colonne.

Exemples

Pour voir des exemples, consultez ALTER TABLE (Transact-SQL).

Voir aussi

Référence

ALTER TABLE (Transact-SQL)

Autres ressources

Contrôle des contraintes, des identités et des déclencheurs avec l'option NOT FOR REPLICATION

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

5 décembre 2005

Nouveau contenu :
  • Des éclaircissements ont été fournis concernant le comportement de la clause IDENTITY lorsque celle-ci est utilisée pour ajouter une nouvelle colonne d'identification.
  • Il a été expliqué que ne pouvez pas modifier une colonne de table existante pour ajouter la propriété IDENTITY.