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:
Les "casts" c'est pour éviter les erreurs dues à la conversion implicite directe des types nvarchar en int,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 "+" 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.
A quel niveau ai-je commis une erreur? merci..
Partager