février 24, 2022

SQL SERVER – 2008 – Création d’une Clé Primaire, d’une Clé Étrangère et d’une Contrainte par Défaut

La clé primaire, la Clé Étrangère et la contrainte par Défaut sont les 3 principales contraintes à prendre en compte lors de la création de tables ou même après. Il semble très facile d’appliquer ces contraintes mais nous avons quand même quelques confusions et problèmes lors de sa mise en œuvre. J’ai donc essayé d’écrire sur ces contraintes qui peuvent être créées ou ajoutées à différents niveaux et de différentes manières ou méthodes.Contrainte de clé primaire

: Les contraintes de clés primaires empêchent les valeurs en double pour les colonnes et fournissent un identifiant unique à chaque colonne, ainsi qu’un index en cluster sur les colonnes.

1) Instruction Create Table pour créer une clé primaire

a. Niveau Colonne

USE AdventureWorks2008GOCREATE TABLE Products(ProductID INT CONSTRAINT pk_products_pid PRIMARY KEY,ProductName VARCHAR(25));GO

d. Niveau de la Table

CREATE TABLE Products(ProductID INT,ProductName VARCHAR(25)CONSTRAINT pk_products_pid PRIMARY KEY(ProductID));GO

2) Instruction Alter Table pour créer une clé primaire

ALTER TABLE ProductsADD CONSTRAINT pk_products_pid PRIMARY KEY(ProductID)GO

3) Alter Instruction pour supprimer la clé primaire

ALTER TABLE ProductsDROP CONSTRAINT pk_products_pid;GO

 SQL SERVER -2008 - Création d'une Clé Primaire, d'une Clé Étrangère et d'une Contrainte par défaut 5_AllQuery

 SQL SERVER -2008 - Création d'une Clé Primaire, d'une Clé Étrangère et d'une Contrainte par défaut 5_AllQuery

Contrainte de Clé Étrangère: Lorsqu’une contrainte de CLÉ ÉTRANGÈRE est ajoutée à une ou plusieurs colonnes existantes dans la table SQL Server, vérifie par défaut les données existantes dans les colonnes pour s’assurer que toutes les valeurs, à l’exception de NULL, existent dans la ou les colonnes de la CLÉ PRIMAIRE référencée ou de la contrainte UNIQUE.

1) Instruction Create Table pour créer une clé étrangère

a. Niveau Colonne

USE AdventureWorks2008GOCREATE TABLE ProductSales(SalesID INT CONSTRAINT pk_productSales_sid PRIMARY KEY,ProductID INT CONSTRAINT fk_productSales_pid FOREIGN KEY REFERENCES Products(ProductID),SalesPerson VARCHAR(25));GO

d. Niveau de la Table

CREATE TABLE ProductSales(SalesID INT,ProductID INT,SalesPerson VARCHAR(25)CONSTRAINT pk_productSales_sid PRIMARY KEY(SalesID),CONSTRAINT fk_productSales_pid FOREIGN KEY(ProductID)REFERENCES Products(ProductID));GO

1) Instruction Alter Table pour créer une clé étrangère

ALTER TABLE ProductSalesADD CONSTRAINT fk_productSales_pid FOREIGN KEY(ProductID)REFERENCES Products(ProductID)GO

2) Instruction Alter Table pour supprimer la clé étrangère

ALTER TABLE ProductSalesDROP CONSTRAINT fk_productSales_pid;GO

 SQL SERVER -2008 - Création d'une Clé Primaire, d'une Clé Étrangère et d'une Contrainte par Défaut 10_ALLFKquery

 SQL SERVER -2008 - Création d'une Clé Primaire, d'une Clé Étrangère et d'une Contrainte par Défaut 10_ALLFKquery

Contrainte par défaut : Une contrainte par défaut créée sur une colonne aura les données par défaut qui sont données dans la contrainte lorsqu’aucun enregistrement ou donnée n’est inséré dans cette colonne.

1) Créer une instruction Table pour créer une Contrainte par défaut

a. Niveau Colonne

USE AdventureWorks2008GOCREATE TABLE Customer(CustomerID INT CONSTRAINT pk_customer_cid PRIMARY KEY,CustomerName VARCHAR(30),CustomerAddress VARCHAR(50) CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN');GO


b. Niveau de la Table : Ne s’applique pas à la Contrainte par défaut

2) Alter Table Instruction pour ajouter une contrainte par défaut

ALTER TABLE CustomerADD CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN' FOR CustomerAddressGO

3) Modifier la Table pour Supprimer la Contrainte par défaut

ALTER TABLE CustomerDROP CONSTRAINT df_customer_AddGO

 SQL SERVER -2008 - Création d'une Clé Primaire, d'une Clé Étrangère et d'une Contrainte par défaut 14_DFAllQuery

 SQL SERVER -2008 - Création d'une Clé Primaire, d'une Clé Étrangère et d'une Contrainte par défaut 14_DFAllQuery

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.