IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Erreur provoquée par un trigger


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 42
    Par défaut Erreur provoquée par un trigger
    Bonjour,

    je viens de me rendre compte d'un petit problème très génant sur ma base de données.

    Sur un serveur MS SQL Server 2000, j'ai une table, t_Demande, qui contient une vingtaine de champs, dont 4 champs de type varchar(300). J'ai aussi sur cette table un trigger qui copie, à chaque modification de la table, deux lignes (before et after) dans une table d'historique appelée t_Demande_H. Cette table comporte exactement les mêmes champs que t_Demande, auxquels sont ajoutés deux autres champs :

    - un identifiant auto-incrémenté
    - un champ de type char (10) ou je stocke "before" ou "after" selon le cas (la ligne avec "before" reprend l'état de l'enregistrement avant la modification, la ligne "after" reprend l'état de l'enregistrement après la modification).

    Le problème survient lorsqu'un d emes champs varchar(300) contient une chaîne de plus de 40 caractères. A ce moment, j'obtiens l'erreur suivante:

    String or binary data would be truncated. The statement has been terminated.
    et mon UPDATE dans la table t_Demande n'est pas effectué (ni donc celui dans t_Demande_H).

    Lorsque j'enlève le trigger, la modification s'effectue. Je pense donc que le problème provient d'une limitation du trigger. Qu'en pensez-vous? Avez-vous déjà été confrontés à ce problème?

    Merci d'avance pour votre aide,

    djdada.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    j'ai pas lu tout le post

    mais a mon sens, les variables de ton trigger sont trop petites, remplace ton char(10) par varchar(300)

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 42
    Par défaut
    Ce n'est pas ce champ là qui pose problème, c'est un champ nommé "motif" et défini en varchar(300). Or l'erreur survient dès que je dépasse les 50 caractères.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    pour ma part je suis incapable de t'aider plus mais il est certains que l'erreur provient d'un soucis de taille.

    Dans une variable, une table lorsque tu l'assignes ou n'importe. Regarde de ce coté la

  5. #5
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 42
    Par défaut
    En fait, l'erreur provient du trigger lui même. J'ai inversé l'ordre des 19e (50 caracteres) et 20e colonnes (300 caracteres). D'où le problème.

    Merci à tous et désolé pour cette gaffe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E]erreur définie par l'application ou par l'objet
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2006, 14h51
  2. Erreur retourné par le SGBD
    Par ffraggy dans le forum ASP
    Réponses: 8
    Dernier message: 08/02/2006, 09h47
  3. [SAX] Comment gerer les erreurs soulevés par sax
    Par tipaquo dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 03/07/2005, 12h00
  4. Réponses: 2
    Dernier message: 04/03/2005, 12h02
  5. [debutant][servlet]erreur causée par une listBox
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/03/2004, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo