OVH Cloud OVH Cloud

Probleme au niveau d'une insertion

5 réponses
Avatar
tournesol
Désolé pour ce message assez anodin, mais je debute sous SQL Server ..

Mon problème actuel est que j'essaye d'inserer la requete suivante
INSERT INTO F_JMOUV (JO_Num) VALUES ('VEN')

et lorsque je l'execute voila le message d'erreur qui m'est retourne
" RAISERROR ne peut pas localiser l'entrée dans sysmessages pour l'erreur
81108"

Si une personne peut m'expliquer d'ou provient cette erreur et comment
resoudre le probleme originaire de ce message

Merci d'avance

5 réponses

Avatar
Fred.M.
A première vue, je dirais que quelqu'un a posé un déclencheur qui comporte
une erreur de syntaxe...
Pour vérifier, sur la console de l'Enterprise Manager, fais un clic droit
sur ta table F_JMOUV et choisis dans le menu contextuel "Toutes les taches -
gérer les déclencheurs...". Tu vas obtenir une fenetre avec une liste en haut
présentant tous les déclencheurs posés sur cette table. Cherches-en un qui
concerne justement l'insertion (... ON INSERT ... dans la définition du
CREATE TRIGGER).
Si mon hypothèse se vérifie, tu devrais donc en trouver un donc le corps de
programme contient une ligne "RAISERROR( 81108, ...". Mets cette ligne en
commentaire pour qu'elle soit ignorée et le problème sera résolu.
Ps : prends quand-même soin de prévenir les collègues comme quoi un de leur
déclencheur est bancal ;-)

En espérant avoir vu juste...
Bon Courage.



"tournesol" a écrit :

Désolé pour ce message assez anodin, mais je debute sous SQL Server ..

Mon problème actuel est que j'essaye d'inserer la requete suivante
INSERT INTO F_JMOUV (JO_Num) VALUES ('VEN')

et lorsque je l'execute voila le message d'erreur qui m'est retourne
" RAISERROR ne peut pas localiser l'entrée dans sysmessages pour l'erreur
81108"

Si une personne peut m'expliquer d'ou provient cette erreur et comment
resoudre le probleme originaire de ce message

Merci d'avance


Avatar
tournesol
Merci Fred tu avais bien vu, malheureusement lorsque j'ai voulu mettre la
ligne en commentaire, SQL Server m'a renvoye " Erreur 195 : 'APPEND' n'est
pas une option reconnu " .. qu'est ce que ca veut dire ??


"Fred.M." a écrit :

A première vue, je dirais que quelqu'un a posé un déclencheur qui comporte
une erreur de syntaxe...
Pour vérifier, sur la console de l'Enterprise Manager, fais un clic droit
sur ta table F_JMOUV et choisis dans le menu contextuel "Toutes les taches -
gérer les déclencheurs...". Tu vas obtenir une fenetre avec une liste en haut
présentant tous les déclencheurs posés sur cette table. Cherches-en un qui
concerne justement l'insertion (... ON INSERT ... dans la définition du
CREATE TRIGGER).
Si mon hypothèse se vérifie, tu devrais donc en trouver un donc le corps de
programme contient une ligne "RAISERROR( 81108, ...". Mets cette ligne en
commentaire pour qu'elle soit ignorée et le problème sera résolu.
Ps : prends quand-même soin de prévenir les collègues comme quoi un de leur
déclencheur est bancal ;-)

En espérant avoir vu juste...
Bon Courage.



"tournesol" a écrit :

> Désolé pour ce message assez anodin, mais je debute sous SQL Server ..
>
> Mon problème actuel est que j'essaye d'inserer la requete suivante
> INSERT INTO F_JMOUV (JO_Num) VALUES ('VEN')
>
> et lorsque je l'execute voila le message d'erreur qui m'est retourne
> " RAISERROR ne peut pas localiser l'entrée dans sysmessages pour l'erreur
> 81108"
>
> Si une personne peut m'expliquer d'ou provient cette erreur et comment
> resoudre le probleme originaire de ce message
>
> Merci d'avance


Avatar
tournesol
Dans mon message j'ai oublie de te mettre le TRIGGER

CREATE TRIGGER TG_INS_F_JMOUV ON F_JMOUV FOR INSERT WITH APPEND AS
DECLARE @nb int
SET NOCOUNT ON
SELECT @nb = COUNT(*) FROM INSERTED WHERE JO_Num IS NOT NULL AND JO_Num <> ''
IF @nb > 0
IF @nb <> (SELECT COUNT(*) FROM INSERTED,F_JOURNAUX WHERE INSERTED.JO_Num
IS NOT NULL AND INSERTED.JO_Num <> '' AND F_JOURNAUX.cbJO_Num =
INSERTED.cbJO_Num) BEGIN
Raiserror(81108,11,1) WITH SETERROR
Rollback Transaction
Return
END




"Fred.M." a écrit :

A première vue, je dirais que quelqu'un a posé un déclencheur qui comporte
une erreur de syntaxe...
Pour vérifier, sur la console de l'Enterprise Manager, fais un clic droit
sur ta table F_JMOUV et choisis dans le menu contextuel "Toutes les taches -
gérer les déclencheurs...". Tu vas obtenir une fenetre avec une liste en haut
présentant tous les déclencheurs posés sur cette table. Cherches-en un qui
concerne justement l'insertion (... ON INSERT ... dans la définition du
CREATE TRIGGER).
Si mon hypothèse se vérifie, tu devrais donc en trouver un donc le corps de
programme contient une ligne "RAISERROR( 81108, ...". Mets cette ligne en
commentaire pour qu'elle soit ignorée et le problème sera résolu.
Ps : prends quand-même soin de prévenir les collègues comme quoi un de leur
déclencheur est bancal ;-)

En espérant avoir vu juste...
Bon Courage.



"tournesol" a écrit :

> Désolé pour ce message assez anodin, mais je debute sous SQL Server ..
>
> Mon problème actuel est que j'essaye d'inserer la requete suivante
> INSERT INTO F_JMOUV (JO_Num) VALUES ('VEN')
>
> et lorsque je l'execute voila le message d'erreur qui m'est retourne
> " RAISERROR ne peut pas localiser l'entrée dans sysmessages pour l'erreur
> 81108"
>
> Si une personne peut m'expliquer d'ou provient cette erreur et comment
> resoudre le probleme originaire de ce message
>
> Merci d'avance


Avatar
Fred.M.
Arf, vraissemblablement ton collègue qui a codé le trigger n'a pas pensé à
tout tester ;-). Pour info le Create Trigger dispose d'une option "with
append" qui a du être mal utilisée. Pour plus d'infos là dessus je te
conseille vivement de jeter dans la documentation en ligne et chercher dans
l'index "Create Trigger". Sincèrement la doc est très bien faite.
Pour en revenir à ton problème d'append, il faudrait malheureusement
disséquer toute la syntaxe du trigger pour voir ce qui cloche. Si tu as
l'autorisation de ton chef ou du DBA, tu peux faire un "Alter Table F_JMOUV
disable trigger NomDuTrigger" pour le désactiver. Ainsi, sans le supprimer tu
l'auras tout au moins désactivé et tu pourras ainsi faire ton Insert
tranquillement.



"tournesol" a écrit :

Merci Fred tu avais bien vu, malheureusement lorsque j'ai voulu mettre la
ligne en commentaire, SQL Server m'a renvoye " Erreur 195 : 'APPEND' n'est
pas une option reconnu " .. qu'est ce que ca veut dire ??


"Fred.M." a écrit :

> A première vue, je dirais que quelqu'un a posé un déclencheur qui comporte
> une erreur de syntaxe...
> Pour vérifier, sur la console de l'Enterprise Manager, fais un clic droit
> sur ta table F_JMOUV et choisis dans le menu contextuel "Toutes les taches -
> gérer les déclencheurs...". Tu vas obtenir une fenetre avec une liste en haut
> présentant tous les déclencheurs posés sur cette table. Cherches-en un qui
> concerne justement l'insertion (... ON INSERT ... dans la définition du
> CREATE TRIGGER).
> Si mon hypothèse se vérifie, tu devrais donc en trouver un donc le corps de
> programme contient une ligne "RAISERROR( 81108, ...". Mets cette ligne en
> commentaire pour qu'elle soit ignorée et le problème sera résolu.
> Ps : prends quand-même soin de prévenir les collègues comme quoi un de leur
> déclencheur est bancal ;-)
>
> En espérant avoir vu juste...
> Bon Courage.
>
>
>
> "tournesol" a écrit :
>
> > Désolé pour ce message assez anodin, mais je debute sous SQL Server ..
> >
> > Mon problème actuel est que j'essaye d'inserer la requete suivante
> > INSERT INTO F_JMOUV (JO_Num) VALUES ('VEN')
> >
> > et lorsque je l'execute voila le message d'erreur qui m'est retourne
> > " RAISERROR ne peut pas localiser l'entrée dans sysmessages pour l'erreur
> > 81108"
> >
> > Si une personne peut m'expliquer d'ou provient cette erreur et comment
> > resoudre le probleme originaire de ce message
> >
> > Merci d'avance


Avatar
Steve Kass
Le mot clé APPEND ne sera pas reconnu si le niveau de compatibilité
est inferieure à 70. Voir Aide en Ligne, rubrique sp_dbcmptlevel.

Steve Kass
Drew University

tournesol wrote:

Merci Fred tu avais bien vu, malheureusement lorsque j'ai voulu mettre la
ligne en commentaire, SQL Server m'a renvoye " Erreur 195 : 'APPEND' n'est
pas une option reconnu " .. qu'est ce que ca veut dire ??


"Fred.M." a écrit :



A première vue, je dirais que quelqu'un a posé un déclencheur qui comporte
une erreur de syntaxe...
Pour vérifier, sur la console de l'Enterprise Manager, fais un clic droit
sur ta table F_JMOUV et choisis dans le menu contextuel "Toutes les taches -
gérer les déclencheurs...". Tu vas obtenir une fenetre avec une liste en haut
présentant tous les déclencheurs posés sur cette table. Cherches-en un qui
concerne justement l'insertion (... ON INSERT ... dans la définition du
CREATE TRIGGER).
Si mon hypothèse se vérifie, tu devrais donc en trouver un donc le corps de
programme contient une ligne "RAISERROR( 81108, ...". Mets cette ligne en
commentaire pour qu'elle soit ignorée et le problème sera résolu.
Ps : prends quand-même soin de prévenir les collègues comme quoi un de leur
déclencheur est bancal ;-)

En espérant avoir vu juste...
Bon Courage.



"tournesol" a écrit :



Désolé pour ce message assez anodin, mais je debute sous SQL Server ..

Mon problème actuel est que j'essaye d'inserer la requete suivante
INSERT INTO F_JMOUV (JO_Num) VALUES ('VEN')

et lorsque je l'execute voila le message d'erreur qui m'est retourne
" RAISERROR ne peut pas localiser l'entrée dans sysmessages pour l'erreur
81108"

Si une personne peut m'expliquer d'ou provient cette erreur et comment
resoudre le probleme originaire de ce message

Merci d'avance