J'ai créé ce trigger :
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
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
 
insert into custom_sjour(bdate) values('2008-07-14')
 
insert into custom_sjour(bdate) values('2008-06-14')
Selon ma logique la table devrait etre vidée dans le second cas mais pas dans le premier !

merci de votre aide