Insertion données par Trigger
Bonjour à tous,
Dans une table de ma base de données existe un champ dont j'aimerais déduire la valeur des valeurs des autres champs de la table.
Structure de la table: Documents(id_doc, id_type_doc, nom_affaire, indice).
Le champ id_doc doit être constitué des 3 premières lettres du nom affaire + indice+id_type_doc.
Pour ce faire, j'ai pensé à la création d'un trigger à l'insertion des autres données dans la table.
ça donne quelque chose comme ça:
Code:
1 2 3 4 5 6 7 8
| CREATE TRIGGER PAC.dbo.insertion
AFTER INSERT ON PAC.dbo.Document
FOR EACH ROW
BEGIN
INSERT INTO NEW.id_doc
SELECT SUBSTRING(NEW.nom_affaire,0,4)+CAST(NEW.id_type_doc AS NVARCHAR)+
CAST(NEW.indice AS NVARCHAR);
END |
Les "casts" c'est pour éviter les erreurs dues à la conversion implicite directe des types nvarchar en int,
les "+" c'est pour la concaténation, et le "substring" pour la récupération des 3 premières lettres du nom affaire.
Seulement lorsque je vais dans la rubrique"modification des 200 premières lignes", il se passe rien lorsque j'entre les données dans les autres colonnes. J'ai pensé que peut-être je devrais remplacer "AFTER" par "Before", mais là encore il se passe rien.:roll:
A quel niveau ai-je commis une erreur? merci..