[Transac-SQL] clause WHERE NOT IN dans un trigger

clause WHERE NOT IN dans un trigger [Transac-SQL] - SQL/NoSQL - Programmation

Marsh Posté le 09-11-2010 à 17:37:46    

Bonjour à tous, je souhaiterais créer un trigger avec une requete SQL contenant une clause WHERE NOT IN, pour cela, j'utilise le code suivant :
 

Code :
  1. CREATE TRIGGER Trigger_test_nomachine
  2.    ON  F_ARTICLE
  3.    AFTER INSERT,DELETE,UPDATE
  4. AS
  5. declare @no_machine as varchar(21)
  6. declare @resultat as int
  7. BEGIN
  8. SET NOCOUNT ON;
  9. select @no_machine=inserted.Machine_associe from inserted where not in (SELECT F_ENUMLIBRECIAL.EL_Intitule FROM F_ENUMLIBRECIAL where N_Info = 2)
  10. if (LEN(@no_machine)>0)
  11. begin
  12. raiserror('Machine inexistante ou nom de machine incorrect',11,1)
  13. rollback transaction
  14. return
  15. end
  16. END
  17. GO


 
Mon problème est le suivant : au moment de l'éxécution, j'ai le message d'erreur suivant :
 
Msg 156, Level 15, State 1, Procedure Trigger_test_nomachine, Line 14
Syntaxe incorrecte vers le mot clé 'in'.
 
 
Merci pour vos réponses.


---------------
Greg
Reply

Marsh Posté le 09-11-2010 à 17:37:46   

Reply

Marsh Posté le 10-11-2010 à 08:09:23    

Il manque un nom de colone apres le where.
Un truc du genre:

Code :
  1. SELECT @no_machine=inserted.Machine_associe FROM inserted WHERE inserted.Machine_associe NOT IN (SELECT F_ENUMLIBRECIAL.EL_Intitule FROM F_ENUMLIBRECIAL WHERE N_Info = 2)


 
Ce que tu essayes de faire peu aussi etre fait automatiquement avec une foreign keys.


Message édité par Oliiii le 10-11-2010 à 08:10:40
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed