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:
et mon UPDATE dans la table t_Demande n'est pas effectué (ni donc celui dans t_Demande_H).String or binary data would be truncated. The statement has been terminated.
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.
Partager