Erreur de création d'un trigger
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 :cry: :( :
Citation:
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 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 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; |
MERCI BQ
MS SQL Server et THEN, END IF, etc.
Bonsoir hassane03,
T-SQL a un style de programmation structuré particulier...
Les THEN, END IF et autres éléments classiques des langages structurés lui sont étrangers...
Sans garantie évidemment :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| IF (LEN(NEW.Jour)>3)
BEGIN
SELECT 'Nbr caractaire du champs jour doit etre <3' INTO EJour;
SELECT 'a','a' INTO EJour;
END
ELSE IF (NEW.Vitesse<0)
BEGIN
SELECT 'La Vitesse ne peut pas etre negative' INTO EVitesse;
SELECT 'a','a' INTO EVitesse;
END
ELSE IF (NEW.Température < -273)
BEGIN
SELECT 'La Température doit etre superieur a -273' INTO ETempérature;
SELECT 'a','a' INTO ETempérature;
END |
Vous aurez vraisemblablement d'autres surprises...
En tout cas, bon courage et bonne année !
Problème de creation d'un trigger SQL-Server
Salut tout le monde,
J’ai voulu créer un trigger sur SQL-Server j’ai essayé un code mais il me donne ce message :
Citation:
Msg 4104, Niveau 16, État 1, Procédure TBI_Machine, Ligne 3
L'identificateur en plusieurs parties "NEW.Jour" ne peut pas être lié.
Msg 4104, Niveau 16, État 1, Procédure TBI_Machine, Ligne 7
L'identificateur en plusieurs parties "NEW.Vitesse" ne peut pas être lié.
Msg 4104, Niveau 16, État 1, Procédure TBI_Machine, Ligne 11
L'identificateur en plusieurs parties "NEW.Température" ne peut pas être lié.
Si c'est possible de me donner aussi l'équivalence de 'NEW' et 'OLD' sur SQL-Server.
Voila mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| CREATE TRIGGER TBI_Machine ON Machine INSTEAD OF INSERT AS
BEGIN
IF (LEN(NEW.Jour)>3)
BEGIN
SELECT 'jour doit etre en 3char' AS 'ErrJour';
END
ELSE IF (NEW.Vitesse<0)
BEGIN
SELECT 'La Vitesse ne peut pas etre negative' AS 'EVitesse';
END
ELSE IF (NEW.Température < -273)
BEGIN
SELECT 'La Température doit etre superieur a -273' AS 'ETempérature';
END
END; |
Je vous remercie les amis.