Je dois mettre à jour plusieurs lignes dans une table Parts lorsqu'un champ d'une autre table change et que je souhaite utiliser un trigger. La raison du déclencheur est de nombreuses applications existantes et de modifier les données et je n'ai pas accès à tous. Je sais que certaines bases de données prennent en charge un For Each Row dans l'instruction trigger, mais Microsoft ne le pense pas.SQL Server déclenche l'équivalent "For Each Row"
Spécifiquement j'ai deux tables Pièces et Catégories.
Parts a # Part, category_id, NOM_ARTICLE et original et beaucoup d'autres choses
Catégorie a category_id et CATEGORY_NAME.
Original est une concaténation de Category_Name et NOM_ARTICLE séparés par un ':'
Par exemple Bracelets: BB129090
Si quelqu'un change la Category_Name (pour excample de bracelets à bracelets), le champ d'origine doit être mis à jour dans chaque ligne de la table Parts. Bien que ce soit un événement peu fréquent, il arrive assez de causer des problèmes.
Pas d'applications Web et de bureau utilise une utilisation originale
Toute l'application comptable seulement originale
Ma tâche est de maintenir la comptabilité et l'autre application en synchronisation.
Je n'ai pas conçu la base de données et la société qui a écrit le programme de comptabilité ne le changera pas.
L'IF uPDATE (original) ne sera jamais k - la colonne "Original" ne sera jamais mise à jour, n'est-ce pas? C'est la colonne Category_Name ou la colonne Part_Name qui peut être mise à jour et qui déclenche une mise à jour de la colonne "Original" –
Plus, vous avez également besoin d'un trigger sur la table Parts, dans le cas où la colonne "Part_name" change la table Catégorie n'est pas suffisante –
fixe Category_Name. votre question se concentre sur Category_Name, donc j'ai esquissé la solution pour Category_Name. Bien sûr, vous avez également besoin de fonctionnalités similaires dans un déclencheur de mise à jour sur les pièces – devio