REQUETE SQL TRIGGER pk est-ce qu'il marche pas ???

Résolu
dinous Messages postés 57 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 juin 2006 - 21 oct. 2005 à 15:51
dinous Messages postés 57 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 juin 2006 - 28 oct. 2005 à 15:42
SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO





ALTER trigger TI_ROLE

on dbo.ROLE for insert as

begin

if exists

(

select * from inserted, ROLE

where

ROLE.LIBELLE = INSERTED.LIBELLE

)

begin

rollback transaction

end

end









GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO







lorsque je l'execute sous SQL SERVER il em dis que la requet c'est bien déroulée.

Lorsque je fais un INSERT sur la table ROLE que l'enregistremetn existe ou non il n eme fait plus l'INSERT.

pourquoi ???

4 réponses

dinous Messages postés 57 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 juin 2006
28 oct. 2005 à 15:42
Parfait merci avec un instead of ça marche nickel !!

Nothing
3
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
21 oct. 2005 à 17:23
salut

je pense qu'il faut que tu rajoute la ligne ou tu fait l'insert dans ton trigger :


apres le
begin
rollback transaction
end

rajoute un

else
begin
insert into TI_ROLE ...FROM inserted
end

moi c'est ce que je fait , mais pour un trigger INSTEAD OF, alors je ne sais pas si le probleme vient de la, mais ca vaut le coup de tenter
0
dinous Messages postés 57 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 juin 2006
21 oct. 2005 à 19:01
Je te remercie mais cela ne marche pas mieux :'(
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
24 oct. 2005 à 10:41
re,

j'avoue que je ne suis pas expert en trigger, c'est pour quoi ceci n'est qu'une hypothése mais :
le trigger FOR correspond a quoi exactement.

en fait je me demande si l'insertion ne se fait pas dans la transaction avant le declechement du trigger, et peux ensuite eventuellement etre annulée par un rollback. ce qui fait que lors de ton controle de l'existance des données par ton SELECT, les données viennent d'etre insérées, et donc ta requete te renvois toujours quelque chose ???

essaie peut etre en remplacant ton trigger par un trigger de type "INSTEAD OF INSERT"...
0
Rejoignez-nous