Ereur de creation d'un trigger

hassane03 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   -
Salut Tous le monde
J'ai voulue de créer un trigger sur SQL serveur `un trigger d'avant insertion' qui vérifie que l'utilisateur a saisie dans le champ `'jour'' 3 caractères, et que le `'salaire'' et positive ainsi que le champ `'vitesse'' et positif.

J'ai essayé un code mes il me donne ce message :

Msg 156, Niveau 15, État 1, Procédure TBI_Machine, Ligne 4
Syntaxe incorrecte vers le mot clé 'THEN'.
Msg 156, Niveau 15, État 1, Procédure TBI_Machine, Ligne 8
Syntaxe incorrecte vers le mot clé 'ELSE'.
Msg 156, Niveau 15, État 1, Procédure TBI_Machine, Ligne 8
Syntaxe incorrecte vers le mot clé 'THEN'.
Msg 156, Niveau 15, État 1, Procédure TBI_Machine, Ligne 11
Syntaxe incorrecte vers le mot clé 'IF'.
Msg 156, Niveau 15, État 1, Procédure TBI_Machine, Ligne 12
Syntaxe incorrecte vers le mot clé 'THEN'.
Msg 156, Niveau 15, État 1, Procédure TBI_Machine, Ligne 15
Syntaxe incorrecte vers le mot clé 'IF'.


Voila mon code sql


CREATE TRIGGER TBI_Machine ON Mchine INSTEAD OF INSERT
AS
BEGIN
	IF (LEN(NEW.Jour)>3) THEN
			SELECT 'Nbr caractaire du champs jour doit etre <3' INTO EJour;
			SELECT 'a','a' INTO EJour;
	END IF	
	ELSE IF (NEW.Vitesse<0) THEN
			SELECT 'La Vitesse ne peut pas etre negative' INTO EVitesse;
			SELECT 'a','a' INTO EVitesse;
	END IF	
	ELSE IF (NEW.Température < -273) THEN
			SELECT 'La Température doit etre superieur a -273' INTO ETempérature;
			SELECT 'a','a' INTO ETempérature;
	END IF
END;
A voir également:

1 réponse

Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Bonjour,
En T-SQL, ça s'écrirait plus comme ceci :
CREATE TRIGGER TBI_Machine ON Mchine INSTEAD OF INSERT   
AS   
BEGIN   
 IF (LEN(NEW.Jour)>3) BEGIN   
   SELECT 'Nbr caractères du champs jour doit être <3' INTO EJour;   
   SELECT 'a','a' INTO EJour;   
 END   
 IF (NEW.Vitesse<0) BEGIN   
   SELECT 'La Vitesse ne peut pas être négative' INTO EVitesse;   
   SELECT 'a','a' INTO EVitesse;   
 END   
 IF (NEW.Température < -273) BEGIN   
   SELECT 'La Température doit être supérieure a -273' INTO ETempérature;   
   SELECT 'a','a' INTO ETempérature;   
 END   
END; 


-------------------
Cordialement,
Clément
0