Gérer les tables SQL Server

Comment gérer les tables SQL Server ? Voici une liste des syntaxes pour les tables SQL Server. Les tables SQL en général sont le type d’objet le plus central qui existe dans une base de données. Comme un fichier est l’élément de base de tout système d’exploitation. A garder en favori pour créer une table facilement.

Gérer les tables SQL Server avec des scripts T-SQL

Voici donc comment modifier une table ou ses colonnes avec alter table et alter column.

Mais aussi comment vider une table avec truncate table ou encore la supprimer avec drop table. Enfin, tester l’existence d’une table avec la fonction IF EXISTS avant de la supprimer de la base de données SQL Server.

Exemple T-SQL pour créer une table SQL Server

Cet exemple de script utilise la commande CREATE TABLE pour créer une table de ventes. Le script utilise des colonnes pour stocker le temps au niveau mois, le numéro d’employé et les montants des ventes.

Cette table utilise plusieurs types de données pour montrer une palette des formats disponible avec SQL Server. Toutefois il est aussi judicieux de calculer les montants à la volée avec la valeur de la TVA stockée une seule fois dans une autre table, avec par exemple l’année.

-- Créer la table des ventes
CREATE TABLE [dbo].[VENTES] 
(
 [MoisNom] NVARCHAR(50), -- alphanumérique
 [MoisCourant]	BIT, -- booléen, 0 ou 1 , false / true
 [NumeroMois] TINYINT, -- très petit entier, de 0 à 255
 [NumeroEmploye] SMALLINT, -- petit entier, minimum -2^15, maximum 2^15
 [NombreClients] INTEGER, -- entier, minimum -2^31, maximum 2^31
 [NombreVentes] BIGINT, -- grand entier, minimum: -2^63, maximum 2^63
 [Montant_HT] NUMERIC(15,5), -- numérique, 15 chiffres, dont 5 après la virgule
 [Montant_TTC] DECIMAL(15,5) -- décimal, 15 chiffres, dont 5 après la virgule
);

-- Insérer trois lignes dans la table des ventes
INSERT INTO [DBO].[VENTES] VALUES ('Janvier', 0,1,10,20,12,1000,1200);
INSERT INTO [DBO].[VENTES] VALUES ('Février', 0,1,10,20,12,1000,1200); 
INSERT INTO [DBO].[VENTES] VALUES ('Mars', 0,1,10,20,12,1000,1200); 

Exemple de script pour modifier une table (ALTER TABLE)

Premièrement, pour modifier une table et ajouter des contraintes pour contrôler l’intégrité des données saisies, utiliser les commandes ALTER TABLE et ADD CONSTRAINT.

Ajouter une contrainte sur la table des ventes pour vérifier que la colonne nom du mois n’est pas nulle.

ALTER TABLE [dbo].[VENTES] WITH CHECK
	ADD CONSTRAINT Mois_check CHECK (MoisNom IS NOT NULL);
GO

IL est maintenant possible d’insérer dans la table des ventes uniquement des valeurs non nulles.

INSERT INTO [DBO].[VENTES] VALUES (null, 0,1,10,20,12,1000,1200); 

Si le mois est nul alors cette erreur SQL Server apparaît :

The INSERT statement conflicted with the CHECK constraint « Mois_check ».
The conflict occurred in database « Expert-Only », table « dbo.VENTES », column ‘MoisNom’.

Ajouter une colonne à une table SQL Server (ALTER COLUMN)

Deuxièmement, pour faire évoluer une table, adapter cet exemple pour modifier la longueur des colonnes avec un script de type ALTER COLUMN.

 -- Passer la longueur de 20 à 100 caractères
ALTER TABLE [dbo].[VENTES]
	ALTER COLUMN [MoisNom] NVARCHAR(100);
GO

Supprimer des données depuis une table SQL Server (DELETE FROM)

Troisièmement, Pour supprimer des données avec un filtre, utiliser ce script et adapter le aux besoins du projet. Ce script supprimer les données des trois premiers mois, soit Janvier, Février et Mars.

DELETE FROM [DBO].[VENTES]
	WHERE MoisNom in ('Janvier', 'Février', 'Mars'); 

Vider toutes les données d’une table SQL Server (TRUNCATE TABLE)

Pour vider toutes les données d’une table SQL Server sans aucun filtre, utiliser le script TRUNCATE TABLE.

TRUNCATE TABLE [dbo].[VENTES];

Supprimer une table SQL Server (DROP TABLE)

Utiliser cette commande T-SQL pour supprimer une table SQL Server, c’est à dire le contenu de la table et sa structure.

DROP TABLE [dbo].[VENTES];

Vérifier si une table existe et la supprimer (IF EXISTS et DROP TABLE)

Ce dernier script est similaire à un truncate simple mais vérifie en plus si la table existe. Cela pour éviter les erreurs SQL Server de type « Impossible de trouver l’objet car il n’existe pas ».

IF EXISTS (
  SELECT 1 FROM sys.objects
    WHERE  object_id = object_id(N'[dbo].[VENTES]')
    AND type in (N'U')  )
BEGIN 
  DROP TABLE [dbo].[VENTES]
END;

Enfin, cet article que je recommande de garder en favori et de partager, rappelle les syntaxes de bases sur les tables SQL Server. Comme la création, la modification, le vidage et la suppression.

De plus, le détail de chaque opération n’est pas listé ici, car l’objectif est d’avoir sous la main la syntaxe le plus rapidement possible.

Pour aller encore plus loin, voici comment écrire une requête INSERT INTO depuis un SELECT.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*