Avatar billede dougheffernan Nybegynder
21. februar 2006 - 14:06 Der er 3 kommentarer og
1 løsning

IF sætning i trigger

Jeg bruger følgende stump i en trigger:

  IF Exists (SELECT * FROM inserted WHERE Måler= + @Maaler_var  AND Tæller > + @LimitValue_var) AND not exists (SELECT * FROM deleted WHERE Måler= + @Maaler_var) AND @SendMail_var = -1

Triggeren sender en mail hvis ovenstående er opfyldt.
Hvis jeg ændrer lidt på SELECT'en og skriver "Tæller < + @LimitValue_var", bliver resultatet modsat, altså hvis @LimitValue_var = -18 og den indsatte post indeholder -12, vil den først sende en mail, den næste ikke. Det er som det skal være. Nu vil jeg dog gerne sætte et tidsrum på, så man ikke modtager mails i arbejdstiden (hvor systemet alligevel overvåges konstant), men når jeg prøver med følgende SELECT (og samme values som lige nævnt), sendes der mails HVER gang!

  IF Exists (SELECT * FROM inserted WHERE Måler= + @Maaler_var  AND Tæller > + @LimitValue_var  AND Klokkeslæt BETWEEN + @TidsrumStart_var AND '23:59:59' OR Klokkeslæt BETWEEN '00:00:00' AND + @TidsrumSlut_var) AND not exists (SELECT * FROM deleted WHERE Måler= + @Maaler_var) AND @SendMail_var = -1

(hvis jeg vender "Tæller > + @LimitValue_var" til "Tæller < + @LimitValue_var", bliver der STADIG sendt mails!)
Avatar billede dougheffernan Nybegynder
21. februar 2006 - 14:08 #1
Glemte at sige at
@StartTidsrum = 07:00:00
@SlutTidsrum = 15:00:00
Avatar billede dougheffernan Nybegynder
21. februar 2006 - 14:13 #2
Har det noget med parenteser at gøre?
(det burde det vel ikke...)
Avatar billede dougheffernan Nybegynder
21. februar 2006 - 14:18 #3
Kan det lade sig gøre at ændre forespørgslen så man checker fra SlutTidsrum til StartTidsrum (hvis f.eks. StartTidspunkt = 07:00:00, SlutTidspunkt = 15:00:00)? Dvs. henover midnat, selvom feltet ikke indeholder en dato?
Avatar billede dougheffernan Nybegynder
22. februar 2006 - 14:12 #4
Fik det til at virke med
IF Exists (SELECT * FROM inserted WHERE (Måler= + @Maaler_var  AND Tæller > + @LimitValue_var  AND Klokkeslæt BETWEEN + '00:00:00' AND @TidsrumStart_var) OR (Måler= + @Maaler_var  AND Tæller > + @LimitValue_var  AND Klokkeslæt BETWEEN @TidsrumSlut_var AND '23:59:59')) AND not exists (SELECT * FROM deleted WHERE Måler= + @Maaler_var) AND @SendMail_var = -1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester