Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

SQL Server : Utilisations intéressantes de triggers – Horodater un enregistrement

L'un des usages les plus fréquents et les plus simples de Trigger sur SQL Server. Ceux qui me connaissent savent que je déteste les triggers, mais essentiellement parce qu'il en ait fait mauvais usage.

L'exemple ici est simple, vous avez un champ appelé DateDeModification dont vous souhaitez que la valeur reflète la dernière modification de l'enregistrement. On va donc créer un Trigger AFTER UPDATE.

-- OU CREATE TRIGGER MonTrigger ON MaTable AFTER UPDATE, INSERT
-- Si vous souhaitez avoir la date à la création
CREATE TRIGGER MonTrigger ON MaTable AFTER UPDATE
AS

    SET NOCOUNT OFF

    -- Met à jour le champ DateDeModification
    -- Des enregistrements mis à jours
    UPDATE MaTable as tab
    SET DateDeModification = GETDATE()
    WHERE EXISTS
        (    
            SELECT * FROM inserted AS ins
            WHERE tab.Clef = ins.Clef
        )

GO

Attention ici le champ Clef est discrimant (c'est vraisemblablement la clef primaire de la table), dans ce cas la requête est assez simple. Si vous n'avez pas de clef dans la table il faudra indiquer tous les champs dans la jointure (Le WHERE de la sous requête joue ce rôle).

WHERE tab.Ch1= ins.Ch1 AND tab.Ch2 = ins.Ch2 AND …

C'est le seule moyen efficace de mettre à jour le champ de date de modification, l'avantage de cette solution, c'est que d'où vienne la mise à jour (application différente, serveur différent), la date est généré par le serveur et la mise à jour se fera toujours.

De plus la mise à jour est suffisamment légère (pensez quand même à avoir un index sur Clef, ce qui est déjà le cas si ce champ est clef primaire) pour avoir un impact peu négatif sur les performances de l'application.

Bon tests…

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié mercredi 14 février 2007 09:00 par christian
Classé sous : ,

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Microsoft Regional Director 2.0 ! par Le blog de Patrick [MVP Office 365] le 02-23-2015, 22:10

- TechDays Paris 2015: Malware unchained par Blog Technique de Romelard Fabrice le 02-12-2015, 22:58

- TechDays Paris 2015: La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI demain, comment le Cloud MS accompagne cette transfo... par Blog Technique de Romelard Fabrice le 02-12-2015, 22:51

- TechDays Paris 2015: L’intranet social avec Office 365 et Yammer - quelles possibilités d’intégration ? par Blog Technique de Romelard Fabrice le 02-12-2015, 22:46

- TechDays Paris 2015: Plenière jour 3 - Vers une technologie invisible et une intelligence omniprésente ? par Blog Technique de Romelard Fabrice le 02-12-2015, 10:59

- TechDays Paris 2015: Geek is in da {new} House par Blog Technique de Romelard Fabrice le 02-12-2015, 01:13

- TechDays Paris 2015: Windows Server vNext - Virtualisation et Stockage par Blog Technique de Romelard Fabrice le 02-12-2015, 00:26

- TechDays Paris 2015: Quoi de neuf dans Windows 10 ? par Blog Technique de Romelard Fabrice le 02-11-2015, 23:37

- TechDays Paris 2015: Réussir sa migration vers Office 365 en formant les uilisateurs par Blog Technique de Romelard Fabrice le 02-11-2015, 14:32

- TechDays Paris 2015: Windows 10 et PowerShell 5.0 par Blog Technique de Romelard Fabrice le 02-11-2015, 13:10