Partager via


Création et modification des contraintes PRIMARY KEY

Vous pouvez créer une contrainte PRIMARY KEY unique dans le cadre de la définition d'une table lorsque vous créez celle-ci. Si une table existe déjà, vous pouvez ajouter une contrainte PRIMARY KEY, sous réserve qu'aucune autre PRIMARY KEY n'existe déjà. Une table ne peut posséder qu'une seule contrainte PRIMARY KEY.

Si une contrainte PRIMARY KEY existe déjà, vous pouvez la modifier ou la supprimer. Par exemple, vous souhaitez peut-être que la contrainte PRIMARY KEY référence d'autres colonnes ou modifier l'ordre de la colonne, le nom de l'index ou son option cluster, ou encore le taux de remplissage de la contrainte PRIMARY KEY. Toutefois, vous ne pouvez pas modifier la longueur d'une colonne définie avec une contrainte PRIMARY KEY.

[!REMARQUE]

Pour modifier une contrainte PRIMARY KEY, vous devez supprimer auparavant la contrainte PRIMARY KEY existante, puis la créer à nouveau en précisant sa nouvelle définition.

Lorsque vous ajoutez une contrainte PRIMARY KEY à une colonne ou à des colonnes existantes d'une table, le Moteur de base de données examine les métadonnées et les données de colonne existantes pour s'assurer que les règles suivantes appliquées aux clés primaires sont respectées :

  • Les colonnes ne peuvent pas autoriser de valeurs NULL.

    Les colonnes de contraintes PRIMARY KEY spécifiées à la création d'une table sont implicitement converties en valeurs NOT NULL. Une colonne fragmentée ne peut pas être utilisée en tant que partie d'une clé primaire, car les colonnes fragmentées doivent autoriser les valeurs Null.

  • Il n'existe pas de valeurs dupliquées.

    Si vous ajoutez une contrainte PRIMARY KEY à une colonne qui comporte des valeurs dupliquées ou autorise les valeurs NULL, le Moteur de base de données retourne une erreur et n'ajoute pas la contrainte.

Vous ne pouvez pas ajouter une contrainte PRIMARY KEY qui enfreint ces règles.

Le Moteur de base de données crée automatiquement un index unique pour appliquer l'impératif d'unicité de la contrainte PRIMARY KEY. S'il n'existe pas encore d'index cluster dans la table ou qu'un index non-cluster n'est pas défini explicitement, un index cluster unique est créé pour appliquer la contrainte PRIMARY KEY.

Une contrainte PRIMARY KEY ne peut pas être supprimée dans les situations suivantes :

  • Si elle est référencée par une contrainte FOREIGN KEY dans une autre table, cette contrainte doit d'abord être supprimée.

  • Un index PRIMARY XML est appliqué à la table.

Pour créer une contrainte PRIMARY KEY lors de la création d'une table

Pour créer ou supprimer une contrainte PRIMARY KEY sur une table existante

Pour obtenir des informations sur les contraintes PRIMARY KEY

Voir aussi

Concepts