IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Triggers instead of delete qui update un champ suivant une date


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Points : 67
    Points
    67
    Par défaut Triggers instead of delete qui update un champ suivant une date
    Bonjour à tous

    Je dois mettre en place un trigger permettant d'empêcher la suppression d'un bien.
    Il devra le désactiver à la place de le supprimer que si il est inactif à la date de la suppression
    la possibilité de désactiver le bien est fournie par le champ isEnabled (bit)et via la date DisabledDate (date)
    Un bien ne peut être désactiver que si aucun échange n'est actif à la date de la suppression
    Nom : diagramme.png
Affichages : 158
Taille : 12,4 Ko


    Voici mon bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    create trigger TR_NoSuppression
    on [dbo].[BienEchange]
    instead of delete
    as
    begin
    	set nocount on
    	declare @DateFinEchange date
    	select @DateFinEchange =  [DateFinEchange] from [dbo].[MembreBienEchange] MBE join BienEchange BE
    		on MBE.idBien = BE.idBien
    	if(@DateFinEchange < getdate() )
    	begin
    		update BienEchange 
    		set [isEnabled] = 1,[DisabledDate] = GETDATE()
    		where idBien in (select idBien from deleted)
    	end
    end
    Voila je sèche au moment de lui spécifier la contrainte du bien actif à la date de suppression

    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 739
    Points : 52 451
    Points
    52 451
    Billets dans le blog
    5
    Par défaut
    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    create trigger TR_NoSuppression
    on BienEchange
    instead of delete
    as
    SET NOCOUNT ON;
     
    update BE 
    set isEnabled = 1,
        DisabledDate = GETDATE()
    FROM   BienEchange AS BE
           INNER JOIN deleted AS d
                 ON BE.idBien = d.idBien 
           LEFT OUTER JOIN [dbo].[MembreBienEchange] AS MBE
                 ON MBE.idBien = BE.idBien 
                    AND DateFinEchange < getdate() 
    WHERE  MBE.idBien IS NULL;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. TRIGGER INSTEAD OF DELETE et DELETE ON CASCADE
    Par stephane.julien dans le forum Développement
    Réponses: 5
    Dernier message: 22/06/2011, 18h50
  2. [1.x] Fonction qui modifie un champ d'une table
    Par blasil64 dans le forum Symfony
    Réponses: 4
    Dernier message: 05/02/2010, 17h55
  3. test qui compare un champs et une chaine de caractere
    Par goomie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/10/2007, 02h42
  4. Updater un champ par la date du jour via Vba
    Par Bourezak dans le forum Access
    Réponses: 2
    Dernier message: 22/02/2007, 14h10
  5. UPDATER le champ d'une table 1 avec le champ d'une table 2
    Par alain.dissoir dans le forum Oracle
    Réponses: 2
    Dernier message: 08/06/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo