J'ai créé ce trigger :
Le but (souhaité...) de celui-ci est que lorsque j'insère des données dont le max du mois de la colonne bdate des données insérées est égal au max du mois de la colonne bdate de la table custom_sjour la table custom_sjour soit vidée. Le problème est que celui-ci ne fonctionne pas, la table est vidée dans les deux cas suivants (sachant que lors du déclenchement du trigger max(month(custom_sjour.bdate)) est égal à 6) :
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 custom.tmonth on custom.custom_sjour for insert as begin declare @inserted_month integer declare @sjour_month integer select @inserted_month = max(month(bdate)) from inserted select @sjour_month = isnull(max(month(bdate)),0) from custom.custom_sjour if @inserted_month = @sjour_month begin delete from custom.custom_sjour end end
Selon ma logique la table devrait etre vidée dans le second cas mais pas dans le premier !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 insert into custom_sjour(bdate) values('2008-07-14') insert into custom_sjour(bdate) values('2008-06-14')
merci de votre aide
Partager