New dans sql serveur
hassane03
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
FreddyVPI Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
FreddyVPI Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Salut Tous le monde
J'ai voulue de créer un trigger sur SQL serveur j'ai essayé un code mes il me donne ce message :
Si vous prouver me donnez aussi l'équivalence de 'NEW' et 'OLD' Sur SQL Serveur
Voila mon code sql
Je remercie tous les amie
J'ai voulue de créer un trigger sur SQL serveur j'ai essayé un code mes il me donne ce message :
Si vous prouver me donnez aussi l'équivalence de 'NEW' et 'OLD' Sur SQL Serveur
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é.
Voila mon code sql
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 remercie tous les amie
A voir également:
- L'identificateur en plusieurs parties ne peut pas être lié
- Changer serveur dns - Guide
- Serveur dns gratuit - Guide
- Serveur entrant et sortant - Guide
- Serveur dns orange - Accueil - Guide box et connexion Internet
- Logiciel sql - Télécharger - Bases de données
4 réponses
La syntaxe d'une création de trigger sous SQL Server est la suivante :
-------------------
Cordialement,
Clément
CREATE TRIGGER MonSchema.MonTrigger ON MonSchema.MaTable AFTER INSERT AS BEGIN --Et la pseudo-table contenant l(es) insertion(s) est bien INSERTED donc : IF (LEN(INSERTED.Jour)>3) BEGIN SELECT 'jour doit être en 3 char' AS 'ErrJour'; END IF(INSERTED.Vitesse<0) BEGIN SELECT 'La Vitesse ne peut pas être négative' AS 'EVitesse'; END IF(INSERTED.Température<-273) BEGIN SELECT 'La Température doit être supérieure à -273' AS 'ETempérature'; END GO
-------------------
Cordialement,
Clément
j'ai changer 'new' par 'INSERTED' mais ca marche pas encor :(
le code d'erreur:
IF (LEN(INSERTED.Jour)>3) BEGIN SELECT 'jour doit etre en 3char' AS 'ErrJour'; END
le code d'erreur:
Msg 4104, Niveau 16, État 1, Procédure TBI_Machine, Ligne 3 L'identificateur en plusieurs parties "INSERTED.Jour" ne peut pas être lié.
Bonjour,
les triggers SQL server fonctionne avec deux tables qu'il faut utiliser comme telle. INSERTED et DELETED. POur retrouver le nombre de jour dans ton trigger il faut initialiser une variable SELECT @mavariable = jour FROM Inserted
si tu veux connaitre la valeur avant la modification tu peux faire aussi SELECT @mavariable = jour FROM Deleted. Pour savoir si un champ est modifié dans la transaction tu peux utiliser IF UPDATE(jour) BEGIN .... END
les triggers SQL server fonctionne avec deux tables qu'il faut utiliser comme telle. INSERTED et DELETED. POur retrouver le nombre de jour dans ton trigger il faut initialiser une variable SELECT @mavariable = jour FROM Inserted
si tu veux connaitre la valeur avant la modification tu peux faire aussi SELECT @mavariable = jour FROM Deleted. Pour savoir si un champ est modifié dans la transaction tu peux utiliser IF UPDATE(jour) BEGIN .... END