Maintenance record : Enregistrements de mise à jour |
|
La maintenance de l''enregistrement comprend l'affiche des enregistrements, la recherche d'un ou de plusieurs enregistrements, la modification d'un ou de plusieurs enregistrements ou la suppression d'un ou de plusieurs enregistrements. Ces opérations peuvent être effectuées visuellement ou par programmation à l'aide d'une commande DDL (Data Definition Language).
Etude pratique : Présentation de maintenance record
|
|
- Dans la barre d'outils standard, cliquez sur le bouton Nouvelle requête
- Pour créer une base de données, tapez ce qui suit :
USE master;
GO
IF EXISTS(SELECT name
FROM sys.databases
WHERE name = N'CeilInn2'
)
DROP DATABASE CeilInn2
GO
CREATE DATABASE CeilInn2
GO
USE CeilInn2;
GO
CREATE TABLE Rooms (
RoomID int identity(1, 1) NOT NULL,
RoomNumber nvarchar(10),
RoomType nvarchar(20) default N'Bedroom',
BedType nvarchar(40) default N'Queen',
Rate money default 75.85,
Available bit default 0
);
GO
INSERT INTO Rooms(RoomNumber) VALUES(104);
GO
INSERT INTO Rooms(RoomNumber, BedType, Rate, Available)
VALUES(105, N'King', 85.75, 1),
(106, N'King', 85.75, 1);
GO
INSERT INTO Rooms(RoomNumber, Available) VALUES(107, 1);
GO
INSERT INTO Rooms(RoomNumber, BedType, Rate)
VALUES(108, N'King', 85.75);
GO
INSERT INTO Rooms(RoomNumber, Available) VALUES(109, 1);
GO
INSERT INTO Rooms(RoomNumber, RoomType, Rate, BedType, Available)
VALUES(110, N'Conference', 450.00, N'', 1);
GO
- Appuyez sur F5 pour exécuter
Sélectionner visuellement Records |
|
Avant d'exécuter visuellement certaines opérations sur une table, vous devez d'abord sélectionner un ou plusieurs enregistrements. Dans la fenêtre de la table, positionnez la souris sur le bouton de gauche de l'enregistrement pour sélectionner un enregistrement, puis cliquez sur :

Pour sélectionner une plage d'enregistrements, cliquez sur le bouton gris de l'un des enregistrements, appuyez sur la touche et maintenez la touche Maj enfoncée, puis cliquez sur le bouton gris de l'enregistrement à l'autre extrême.
Pour sélectionner les enregistrements de manière aléatoire, sélectionnez un enregistrement, pressez et maintenez la touche Ctrl, puis cliquez sur le bouton gris de chaque enregistrement souhaité :

Pour sélectionner tous les enregistrements d'une table, cliquez sur le bouton gris sur la gauche de la première colonne :

Pour modifier visuellement un ou plusieurs enregistrements sur une table, tout d'abord l'ouvrir (vous cliquez avec le bouton droit de la souris sur la table dans l'Explorateur d'objets et cliquez sur Ouvrir) pour afficher ses enregistrements. Recherchez l'enregistrement et le champ que vous voulez travailler et effectuer l'opération souhaitée.
Mise à jour de tous les Records |
|
La Mise à jour d'un enregistrement consiste à modifier sa valeur pour une colonne particulière. Pour visuellement mettre à jour un enregistrement, dans l'Explorateur d'objets, cliquez avec le bouton droit de la souris sur sa table (ou la vue, dans certains cas), puis cliquez sur Modifier Top 200 Rows. Cela ouvrirait le tableau comme une feuille de calcul, comme illustré ci-dessus. Recherchez la valeur sous l'en-tête de colonne souhaitée et modifiez la valeur comme bon vous semble.
Pour mettre à jour un enregistrement par programmation, utilisez une commande DDL (Data Definition Language). Si vous travaillez dans Microsoft SQL Server :
- Dans l'Explorateur d'objets, à droite du tableau, placez la souris sur Script Table As-> UPDATE To->New Query Editor Window
- Ouvrez une fenêtre de requête vide et tapez votre code
La commande DDL pour mettre à jour un enregistrement est UPDATE. La formule de base à utiliser est :
UPDATE TableName
SET ColumnName = expression
Avec cette formule, vous devez spécifier le nom de la table impliquée comme étant le facteur TableName de notre formule. L'instruction SET vous permet de spécifier une nouvelle valeur Expression, pour le champ sous la colonne ColumnName.
Examinez le code suivant pour créer une nouvelle base de données nommée VideoCollection et pour ajouter un tableau nommé Vidéos :
CREATE DATABASE VideoCollection ;
GO
USE VideoCollection ;
GO
CREATE TABLEVideos (
VideoID INT NOT NULL IDENTITY(1,1),
VideoTitle nvarchar(120) NOT NULL,
Director nvarchar (100) NULL,
YearReleased SMALLINT,
VideoLength nvarchar (30) NULL,
Rating nchar(6)
);
GO
INSERT INTO Videos(VideoTitle, Director, YearReleased, VideoLength)
VALUES(N'A Few Good Men','Rob Reiner',1992,'138 Minutes')
INSERT INTO Videos(VideoTitle, Director, VideoLength)
VALUES(N'The Lady Killers', N'Joel Coen & Ethan Coen', N'104 Minutes') ;
INSERT INTO Videos(VideoTitle, Director, YearReleased, VideoLength)
VALUES(N'The Silence of the Lambs','Jonathan Demme',1991,'118 Minutes') ;
INSERT INTO Videos(VideoTitle, Director, VideoLength)
VALUES(N'The Distinguished Gentleman', N'James Groeling', N'112 Minutes') ;
INSERT INTO Videos(VideoTitle, Director, VideoLength)
VALUES(N'Ghosts of Mississippi', N'Rob Reiner', N'130 Minutes') ;
GO
Imaginez que vous souhaitez indiquer que toutes ces vidéos sont notées R. Pour le faire, dans notre formule, spécifiez le nom de la table. Dans l'expression SET, spécifiez le nom de la colonne comme cote et attribuez-lui R sous la forme d'une chaîne de caractères. Cela serait effectué comme suit :
USE VideoCollection ;
GO
UPDATE Videos
SET Rating = N'R ';
GO
Si vous utilisez l'instruction UPDATE comme ceci, elle agit sur tous les enregistrements. Le code ci-dessus devrait produire :

Maintenance record : Modification des enregistrements |
|
Modifier un enregistrement se compose de modifier une valeur dans un champ. Il pourrait être que le champ est vide, comme l'année © de la vidéo 'The Lady Killers' du tableau suivant. Il pourrait être que la valeur est erronée, telle que le directeur de la vidéo «The Gentleman unique» de ce tableau :
| Titre vidéo |
Directeur |
© An |
Longueur |
Notation |
| Hommes d'honneur |
Rob Reiner |
1992 |
138 Minutes |
R |
| Le silence des agneaux |
Jonathan Demme |
1991 |
118 Minutes |
|
| Le gentleman unique |
James Groeling |
|
112 Minutes |
R |
| The Killers Lady |
Joel Coen et Ethan Coen |
|
104 Minutes |
R |
| Ghosts of Mississippi |
Rob Reiner |
|
130 Minutes |
|
Modification d'un enregistrement |
|
Pour modifier un enregistrement, ouvrez d'abord le tableau pour afficher ses enregistrements. Localiser l'enregistrement, la colonne sur laquelle vous voulez travailler et recherchez la valeur que vous souhaitez modifier, puis modifiez-la.
Pour modifier un enregistrement, vous devez fournir un moyen à l'interprète de localiser l'enregistrement. Pour le faire, vous serez associé à l'opérateur WHERE dans une instruction UPDATE à l'aide de la formule suivante :
UPDATE TableName
SET ColumnName = Expression
WHERE Condition(s)
L'opérateur WHERE vous permet de spécifier comment l'enregistrement particulier concerné serait identifié. Il est très important, dans la plupart des cas, que le critère utilisé pourra identifier de manière unique l'enregistrement. Dans le tableau ci-dessus, imaginez que vous demandez à l'interprète de modifier l'année lancée en 1996 lorsque le directeur de la vidéo est Rob Reiner. L'instruction UPDATE serait écrite comme suit :
UPDATE vidéos
SET YearReleased = 1996
WHERE director = N'Rob Reiner ' ;
Dans le tableau ci-dessus, il existe au moins deux vidéos dirigés par Rob Reiner. Lorsque cette instruction est exécutée, tous les enregistrements vidéos dont le directeur est Rob Reiner seraient modifiés, qui compromettraient les enregistrements existants qui n'avaient pas besoin de ce changement. C'est où la colonne identité devient précieuse. Nous avons vu plus tôt que, lorsque vous l'utilisez avec la fonction IDENTITY, l'interprète ajoute une valeur unique pour chaque enregistrement. Vous pouvez ensuite utiliser cette valeur pour identifier un enregistrement particulier parce que vous êtes certain que la valeur est unique.
Voici un exemple utilisé pour spécifier l'année de copyright manquante d'un enregistrement particulier :
UPDATE vidéos
SET YearReleased = 1996
WHERE VideoID = 5;
GO
Voici un exemple utilisé pour modifier le nom du directeur d'une vidéo particulière :
UPDATE Videos
SET Director = N'Jonathan Lynn '
WHERE VideoTitle = N'The Distinguished Gentleman' ;
Etude pratique : La modification d'un enregistrement
|
|
- Appuyez sur Ctrl + A pour sélectionner tout (le code) dans la fenêtre et, mettre à jour un enregistrement, tapez ce qui suit :
USE CeilInn2 ;
GO
UPDATE Rooms
SET BedType = N'Queen'
WHERE RoomNumber = 108 ;
GO
- Appuyez sur F5 pour exécuter
- Appuyez sur Ctrl + A pour sélectionner le code dans la fenêtre et tapez le texte suivant :
USE CeilInn2 ;
GO
UPDATE Rooms
SET Available = 0
WHERE RoomNumber = 109 ;
GO
- Appuyez sur F5 pour exécuter
Le résultat de la mise à jour de sortie |
|
Après avoir effectué des modifications dans une table à l'aide de SQL, vous n'obtenez pas d'affichage visuel de ce qui s'est passé. Avec Transact-SQL, vous pouvez afficher temporairement le résultat de cette opération, ou vous pouvez l'enregistrer dans un tableau. Déjà, nous avons vu comment le faire lors de la création d'enregistrements. Vous suivez la même formule lors de la mise à jour des enregistrements. La formule est la suivante :
UPDATE TableName
SET ColumnName = Expression
OUTPUT INSERTED.Columns
VALUES (Value_1, Value_2, Value_X)
Outre la formule que nous avons utilisée jusqu'ici, après l'expression SET, démarrez avec l'expression OUTPUT INSERTED, suivie d'une période. Si vous devez afficher toutes les colonnes de la table, ajoutez l'opérateur * . Dans le cas contraire, tapez INSERTED suivi d'une période, suivi du nom de la colonne que vous souhaitez afficher.
Etude pratique : Le résultat de la mise à jour de sortie
|
|
- Appuyez sur Ctrl + A pour sélectionner le code dans la fenêtre
- Pour mettre à jour certains enregistrements et afficher ceux qui ont été modifiés, tapez ce qui suit :
USE CeilInn2 ;
GO
UPDATE Rooms
SET Rate = 95.50
OUTPUT INSERTED.*
WHERE BedType = N'Queen';
GO
- Appuyez sur F5 pour exécuter
Enregistrement de maintenance : Suppression d'enregistrements |
|
Suppression de tous les Records |
|
Si vous pensez que tous les enregistrements d'une table particulière sont, ou sont devenus inutiles, vous pouvez effacer l'ensemble de la table, qui aurait toujours garder sa structure. Pour supprimer tous les enregistrements d'une table, tout d'abord sélectionnez-les tous et appuyez sur la touche Suppr. Vous recevrez un avertissement :

Si vous souhaitez toujours supprimer les enregistrements, cliquez sur Oui. Si vous changez d'avis, cliquez sur Non.
La commande DDL pour effacer un tableau de tous les enregistrements est DELETE. Il utilise la formule suivante :
DELETE TableName ;
Lorsque cette instruction est exécutée, tous les enregistrements du facteur TableName pourraient être supprimés de la table. Soyez prudent en le faisant car une fois que les enregistrements ont été supprimés, vous ne pouvez pas les récupérer.
Suppression d'un enregistrement |
|
Si vous découvrez qu'un enregistrement n'est pas/plus nécessaire, ou s'il est perdu, vous pouvez le supprimer d'une table. Pour supprimer un enregistrement d'une table, vous pouvez cliquer avec le bouton droit de la souris sur sa zone grise et cliquez sur Supprimer. Vous pouvez également tout d'abord sélectionner l'enregistrement et appuyez sur la touche Suppr. Vous recevrez un avertissement pour confirmer votre intention.
Suppression d'un enregistrement par programmation :
- Dans l'Explorateur d'objets, vous pouvez, à droite du tableau, positionner la souris sur Script Table As->DELETE To -> New Query Editor Window (nouvelle fenêtre de l'éditeur de requête)
- Ouvrez une fenêtre de requête vide et tapez votre code
Dans SQL, pour supprimer un enregistrement, utilisez l'instruction DELETE FROM associée à l'opérateur WHERE. La formule à suivre est la suivante :
DELETE FROM TableName
WHERE Condition(s)
Le facteur TableName est utilisé pour identifier une table dont les enregistrements devraient être supprimés.
Le facteur Condition(s) vous permet d'identifier un enregistrement ou un groupe d'enregistrements qui transporte un critère. Une fois de plus, assurez-vous que vous êtes précis dans vos critères de sorte que vous ne supprimerez pas les mauvais enregistrements.
Voici un exemple utilisé pour supprimer un enregistrement particulier de la table :
DELETE FROM Videos
WHERE VideoTitle = N'The Lady Killers' ;
Voici un exemple qui permet d'effacer la table de toutes les vidéos :
DELETE FROM Videos ;
Les résultats de la suppression de sortie |
|
Lorsque certains record (s) ont (avaient) été supprimés, l'opération est effectuée dans les coulisses et vous ne voyez pas le résultat. Si vous souhaitez voir la liste des enregistrements qui ont été supprimés, vous pouvez utiliser l'opérateur de sortie pour afficher le résultat. Pour afficher la liste des enregistrements d'une table qui a été complètement vidée, vous pouvez utiliser la formule suivante :
DELETE FROM TableName
OUTPUT DELETED.Columns
L'expression OUTPUT INSERTED suit la description que nous avons vue pour la mise à jour d'enregistrement. Voici un exemple :
USE VideoCollection6 ;
GO
DELETE FROM Videos
OUTPUT deleted.*
GO
Pour afficher la liste des dossiers qui ont été supprimés selon une condition, utilisez la formule suivante :
DELETE FROM TableName
OUTPUT DELETED.Columns
WHERE Condition(s)
Voici un exemple :
USE VideoCollection6 ;
GO
DELETE FROM Videos
OUTPUT deleted.*
WHERE YearReleased IS NULL ;
GO
Etude pratique : Fin de la leçon
|
|
- Fermez la fenêtre de requête sans enregistrer le fichier.
- Dans l'Explorateur d'objets, sous le nœud de bases de données, cliquez avec le bouton droit de la souris sur WorldStatistics, puis cliquez sur Supprimer
- Dans la boîte de dialogue, cliquez sur OK
- Dans l'Explorateur d'objets, sous le nœud de bases de données, cliquez avec le bouton droit de la souris sur CeilInn2, puis cliquez sur Supprimer
- Dans la boîte de dialogue, cliquez sur OK
|
|