Gérer les tables SQL Server

Comment gérer les tables SQL Server ? Exemples de scripts T-SQL pour créer, modifier, insérer des données, vider ou supprimer une table.

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 gérer les tables facilement.

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

Voici donc comment créer une table, 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.

1. Exemple de script T-SQL pour créer une table et insérer des données

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); 

2. Script pour modifier une table et ajouter une contrainte sur une colonne

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 des données dans la table des ventes avec 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’.

3. Ajouter une colonne à une table SQL Server avec ALTER COLUMN

Ensuite, pour faire évoluer une table, adapter cet exemple pour modifier la longueur des colonnes avec un script de type ALTER COLUMN. La colonne du mois passe donc d’une longueur de 20 à 100 caractères.

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

4. Supprimer des données dans une table SQL Server avec DELETE FROM

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

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

5. 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. La commande truncate est plus rapide que la commande delete.

TRUNCATE TABLE [dbo].[VENTES];

6. Supprimer une table SQL Server avec 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];

7. Vérifier si une table existe et la supprimer avec la fonction IF EXISTS

Ce dernier script est similaire à la simple fonction DROP 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.

Requête SQL Server Insert Into depuis un Select

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *