Les vues SQL sont un outil puissant de gestion des données, mais comment gérer les vues SQL Server avec des scripts ? Elles peuvent être créées à l’aide de scripts Transact-SQL et offrent un certain nombre d’avantages.

Les vues permettent par exemple une abstraction sur les données d’une base SQL. En d’autres termes, vous pouvez créer différentes vues qui montrent différents ensembles de données sans modifier la structure de la table sous-jacente.

Les vues peuvent être créées en lecture seule et mises à jour, et elles peuvent également être utilisées pour filtrer ou agréger des données dans une base de données Microsoft.

Les vues sont utiles pour créer des rapports agrégés. Par exemple, pour voir le revenu total de tous les clients ou le total des commandes des clients de l’entreprise.

Configurer une vue qui le fera automatiquement, avec bien sûr les règles de gestion implémentées dans le code de la requête de sélection.

Créer, modifier et supprimer les vues SQL Server avec du code T-SQL

Avec le langage SQL (Structured Query Language), ou langage de requête structuré en Français, une vue est un objet qui permet de sélectionner un ensemble de données. Cet ensemble provient d’autres tables ou d’autres vues (elles mêmes basées sur des tables).

La sélection se fait sur les colonnes et les lignes. C’est à dire qu’il est possible de filtrer les lignes avec une une clause WHERE et de choisir les colonnes ou de les recréer dans la clause SELECT de la vue.

Comment gérer les vues SQL Server? Les vues SQL Server permettent de visualiser tout ou une partie des données contenues dans des tables sans accéder directement au contenu de la table. De plus les vues SQL permettent d’agréger les données de plusieurs tables, en sélectionnant des colonnes avec les mêmes structures.

Voici des exemples de code pour créer, modifier, appeler ou encore supprimer des vues simples ou encore des vues partitionnées.

Tous les exemples de scripts ci-dessous sont basés sur 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
);

Créer une vue SQL Server avec un script SQL (CREATE VIEW)

Premièrement, voici un exemple de script T-SQL pour créer une vue simple basée sur la table des ventes dont le code est disponible ci dessus.

Voici donc comment créer une vue SQL Server avec un script pour agréger et afficher les ventes mensuelles pour toutes les données des clients de la table avec les ventes effectuées.

CREATE VIEW [dbo].[V_VENTES]
AS 
  SELECT 
    [NombreClients],
    [NombreVentes],
    [Montant_HT],
    [Montant_TTC]
  FROM [dbo].[VENTES];

Modifier une vue avec du code T-SQL (ALTER VIEW)

Deuxièmement, utiliser cet exemple de code SQL pour modifier une vue existante avec la commande ALTER VIEW.

Voici un exemple de code T-SQL pour modifier une vue existante avec la clause Alter View. Si la vue n’existe pas alors il faut la créer pour éviter les erreurs d’exéction du code SQL

ALTER VIEW [dbo].[V_VENTES_E]
WITH ENCRYPTION 
AS 
  SELECT 
    [NombreVentes], -- Suppression de la colonne [NombreClients]
    [Montant_HT],
    [Montant_TTC]
  FROM [dbo].[VENTES];

Supprimer une vue SQL Server (DROP VIEW)

Par contre, pour complètement supprimer une vue et sa structure utiliser alors la commande DROP VIEW. En effet,

DROP VIEW [dbo].[V_VENTES];

Si la vue n’existe pas, alors une erreur du type Impossible de trouver l’objet… s’affiche dans le Système de Gestion de Base de Données (SGBD).

Tester si une vue SQL Server existe et la supprimer sans erreur (IF EXISTS et DROP VIEW)

En effet, il est conseillé de faire des tests pour éviter les erreurs durant la suppression d’objets.

Pour tester l’existance des vues, utiliser la commande IF EXISTS puis la commande DROP.

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

Créer une vue partitionnée (CREATE VIEW et UNION ALL)

De même, pour regrouper les données de plusieurs tables dans une seule vue partitionnée, utiliser cet exemple. En principe, avec une simple requête select combinée à une union de données.

Noter que les trois sélections sur les tables (ou vues) ont obligatoirement la même structure.

CREATE VIEW [dbo].[V_VENTES_P]
AS 
  SELECT [NombreClients], [NombreVentes], [Montant_HT], [Montant_TTC]
  FROM [dbo].[VENTES_01]

  UNION ALL 

  SELECT [NombreClients], [NombreVentes], [Montant_HT], [Montant_TTC]
  FROM [dbo].[VENTES_02]

  UNION ALL 

  SELECT [NombreClients], [NombreVentes], [Montant_HT], [Montant_TTC]
  FROM [dbo].[VENTES_03];

Créer une vue SQL Server avec encryptage (WITH ENCRYPTION)

Ainsi l’encryption masque le code de la vue dans la table système sys.comments. Dans ce cas, si le système utilise la réplication Microsoft SQL, il ne publie pas la vue.

L’option d’encryption ne masque pas les données.

Utiliser ce code T-SQL pour créer une vue avec encryptage.

CREATE VIEW [dbo].[V_VENTES_E]
WITH ENCRYPTION 
AS 
  SELECT 
    [NombreClients],
    [NombreVentes],
    [Montant_HT],
    [Montant_TTC]
  FROM [dbo].[VENTES];

Ce court tutoriel informqtique sur les vues explique comment gérer les vues SQL Server avec des scripts. Enfin, les vues offrent de nombreuses options et une grande flexibilité. Il est donc temps pour vous de les utiliser de manière intensive dans les projets IT.