begin process at 2012 02 11 18:51:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Divers

 > 

TRIGGER AFTER / BEFORE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

TRIGGER AFTER / BEFORE

samedi 21 octobre 2006 à 19:02:21 | TRIGGER AFTER / BEFORE

vladam

Administrateur CodeS-SourceS
hello, j'ai un trigger :

CREATE

TRIGGER dbo.IsAuthDeleted

ON dbo.amp_users_roles

after

delete

AS

BEGIN
END

mais je voudrais que ce trigger s'exécute AVANT un delete.
Je voulais mettre :

CREATETRIGGER dbo.IsAuthDeleted

ON dbo.amp_users_roles

before delete

AS

BEGIN
END



mais SQLServer ne veut pas du before dans ce cas.

Quel solution ??

vladam
(pour vous servir :) )
samedi 21 octobre 2006 à 19:32:46 | Re : TRIGGER AFTER / BEFORE

skweeky

Membre Club Administrateur CodeS-SourceS
Bonjour,

Pourquoi vouloir l'executer avant ?

Il n'y a pas de trigger BEFORE sur SQL Server, seul les validations de contraintes se font "avant" l'opération.

Il existe cependant un Trigger INSTEAD OF dans lequel on ecrit le code qui doit effectuer l'action.

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
samedi 21 octobre 2006 à 22:08:20 | Re : TRIGGER AFTER / BEFORE

vladam

Administrateur CodeS-SourceS
et bien , disons que dans une table, un des champs "bit" autorise ou non l'effacement du record.
Ce que je veux, c'est un trigger sur ma table, qui controle que le record devant être deleté a bien le champ à True, et sinon, annule le delete.
cela me permettra d'assurer l'intégrité de la base de données, même si le développeur oubli de faire la vérification.

Une solution ?

vladam
(pour vous servir :) )
dimanche 22 octobre 2006 à 12:26:53 | Re : TRIGGER AFTER / BEFORE

skweeky

Membre Club Administrateur CodeS-SourceS
Pour annuler le DELETE tu peux executer ROLLBACK dans un TRIGGER AFTER, celà aura pour effet d'annuler le DELETE qui a déclenché le TRIGGER.

Autre question, est ce que tu auras plusieurs enregistrements supprimés ou 1 seul à la fois dans chaque DELETE ?

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
dimanche 22 octobre 2006 à 18:41:47 | Re : TRIGGER AFTER / BEFORE

Malkuth

Membre Club
Réponse acceptée !
Je suis partiellement d'accord avec christian le rollback est bien mais il oblige a tenir compte du contexte (la transaction étant entièrement annuler, ce n'est pas forecement l'effet souhaiter) pour ma part voilà ce que je ferais:

CREATE TRIGGER.IsAuthDeleted
   ON dbo.amp_users_roles 
   INSTEAD OF DELETE 
AS
BEGIN
   DELETE FROM dbo.amp_users_roles WHERE ID IN (SELECT ID FROM deleted WHERE AuthFlag=0);
END

Le trigger sera lancer directement à la place du traitement normal , mais il ne sera pas relancer une seconde fois (Pas de récursivité) lors du l'appel DELETE ...

Pour quelques infos sur les triggers SQLServeur va voir la tutos :
http://www.sqlfr.com/tutoriaux/MS-SQL-SERVER-DEBUTER-AVEC-TRIGGERS_449.aspx


Cette discussion est classée dans : trigger, before, dbo, after, createtrigger


Répondre à ce message

Sujets en rapport avec ce message

Trigger before delete [ par RMI ] Bonjour,Je souhaite créé un trigger sur la suppression d'enregistrement d'un table T1. Un table T2 est lié avec T1 par une référence de clé étrangère. [MSsql2005] Excecution de trigger FOR et AFTER [ par Arthenius ] Bonjour a tousj'ai une petite question.j'ai plusieurs trigger qui s'exécute sur une tableJ'aimerais savoir si les TRIGGER en FOR INSERT s'exécute avan Trigger after delete [ par mictif ] Bonjour ! Je suis confronté a un probleme. je ne connais pas bien les trigger mais ai besoin d'en utiliser un. J'aimerais, lorsque qu'une ligne est execution des trigger [ par ravah2009 ] salut j ai une question sur l execution des triggers avec sql server 2005 dans l'envirenement visuel studio 2008 si quelqu'un a fait une execution de une somme de deux vues qui ne marche pas HELP!!! [ par Su4p ] [b]Contexte :[/b] la *** a un parc de 50 vehicules situés dans différentes villes. La *** souhaiterais un site afin de suivre leurs interventions et l trigger et delete [ par cudenetf ] bonjour, je sais pas trop si je suis dans la bonne rubrique ma question concerne donc les triggers j'aimerais supprimer automatiquement (avec le trig Trigger qui se déclenche chaque mois [ par youma85 ] Salut tous le monde je suis entrain de réaliser un projet, dans le quel je dois insérer les informations d'une table dans une autre table chaque mois trigger/mySql [ par hamzamalek ] Bonjour à tous, je suis entrain de créé un trigger pour ma table messagearticle sous mysql qui à pour rôle d'empêcher l'insertion des lignes qui sont Création de Trigger de logon [ par Tippex_66 ] Alors voilà mon problème. Je suis actuellement en train de monter un projet de groupe pour lequel j'utilise SQL Server. Pour les besoins de ce projet, besoin d'aide pour un trigger [ par marcolo21 ] Bonjour tous le monde, j'aurai besoin d'aide pour un trigger. Ce trigger a pour but de noté les modifications faite dans un table dans un autre table


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,346 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales