Comment créer une table SQL Server avec une contrainte de clé primaire pour éviter les données en double ?
Tutoriel pour créer une table SQL Server avec une clé primaire pour identifier une ligne de données par une valeur unique, c’est donc une clef unique. Cette clef est identifiée sur une ou plusieurs colonnes. Tout d’abord, quel est l’objectif d’une clé primaire ? Et surtout, quelle est la définition d’une clé primaire ? Une clé primaire garantit qu’une seule ligne unique correspond à un identifiant spécifique.
Pour créer une table et lui ajouter une contrainte de clé primaire, suivre ces quatre étapes :
- Premièrement, concevoir la table des clients à l’aide du code SQL.
- Deuxièmement, ajouter une contrainte sur la colonne sélectionnée pour être la clé.
- Insérer deux lignes avec le même ID client.
- Vérifier le résultat des données dans la table.
1. Créer une table de clients avec une colonne ID
Créez une table clients avec un ID client.
-- Créer la table des clients avec la colonne CustomerID déclarée comme NOT NULL CREATE TABLE dbo.Customers ( [CustomerID] INT NOT NULL, [FirstName] NVARCHAR(20), [LastName] NVARCHAR(20), [City] NVARCHAR(20), [Country] NVARCHAR(50) ) GO
2. Ajouter une contrainte de clef primaire à une colonne
Ici la contrainte de clé primaire est basée sur la colonne CustomerID, c’est dire le numéro de client. Utiliser la commande T-SQL ADD CONSTRAINT PRIMARY KEY pour ajouter la contrainte. Voici donc un script SQL Server pour modifier la table client et y ajouter une contrainte de clé primaire.
ALTER TABLE dbo.Customers ADD CONSTRAINT [CustomersPrimaryKeyCustomerID] PRIMARY KEY CLUSTERED ([CustomerID] ASC); GO
3. Insérer 2 lignes avec le même numéro pour tester la contrainte
En effet, la seule façon de vérifier la contrainte de clé primaire est de l’utiliser. Insérer donc deux lignes avec le même numéro de client pour vérifier si la contrainte fonctionne. Techniquement il n’est pas possible d’insérer plusieurs lignes avec le même ID dans la même table SQL Server et une le système renvoie une erreur SQL Server.
-- Insérer deux lignes différente avec le même numéro de client INSERT INTO dbo.Customers (CustomerID, FirstName, LastName, City, Country) VALUES ( 1, 'Ali','Ahmed','Cairo','Egypt'); INSERT INTO dbo.Customers (CustomerID, FirstName, LastName, City, Country) VALUES ( 1, 'Johnny','John','Toronto','Canada');
Noter l’erreur de violation de la contrainte de clé primaire :
Violation de la contrainte PRIMARY KEY ‘CustomersPrimaryKeyCustomerID’. Impossible d’insérer la clé en double dans l’objet ‘dbo.Customers’. La valeur de la clé en double est (1).
L’instruction a été interrompue.
Insérer dans la table deux lignes différentes avec le même ID client n’est donc pas possible grâce à la contrainte ajoutée à la table.
4. Vérifier les données insérées et le fonctionnement de la clé
Après cela, une seule ligne unique est disponible dans la table avec l’ID numéro 1. C’est donc uniquement la première ligne de la commande d’insertion qui est visible dans la table. Utiliser un select pour lire la table.
-- Vérifier le nombre de lignes insérées SELECT * FROM dbo.Customers;
Il n’est maintenant possible d’attribuer qu’une seule valeur à un ID client, cela le rend unique dans la table. Pour aller plus loin, il faut noter quelques éléments concernant les clés primaires de SQL Server. Cependant, ces limitations et comportements spécifiques aux clés primaires font partie intégrante de leur fonctionnement :
- Premièrement, une seule clé primaire par table.
- Une clé primaire peut être une clé composée utilisant plusieurs colonnes. Par exemple, une concaténation de ces colonnes : ID + Prénom + Nom.
- De plus, une colonne utilisée comme clé primaire ne peut pas être NULL, elle est donc définie comme NOT NULL.
- De plus, une clé primaire a par défaut son index cluster correspondant créé automatiquement.
- Si cela est spécifié dans le script, l’index peut également être un index non-cluster.
5. Conclusion sur les contraintes de clefs primaires SQL Server
En conclusion, ce tutoriel T-SQL explique de manière concise comment ajouter une contrainte de clé primaire à une table SQL Server afin d’éviter les doublons et maintenir l’intégrité de la base de données. En suivant les quatre étapes détaillées, il est possible de créer une table et d’ajouter une contrainte de clé primaire en utilisant la commande T-SQL ADD CONSTRAINT PRIMARY KEY.
Il est également important de noter les limitations et comportements spécifiques des clés primaires de SQL Server. Pour en apprendre plus sur les objets SQL, voici comment créer une vue partitionnée SQL Server étape par étape.
Soyez le premier à commenter