|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 15 ![]() |
Bonjour,
J'ai crée dans mon entreprise un Workflow pour la création, modification et suppression de produit de l'usine. Quand une fiche article est clôturée celle-ci va mettre automatiquement à jour des tables d'une autre BDD (JOB SQL tournant tous les jours la nuit). A savoir que la BDD pour le Workflow et celui permettant de stocker les données articles sont sur le même serveur SQL Server 2005. Mon application et mes PS avec mes JOB SQL fonctionnent très bien, mais voilà je dois apporter une modification à mon JOB de mise à jour automatique des données articles afin qu'il soit plus souple. Si j'ai une modification article je dois historiser les données article avant ma mise à jour automatique. Puis mettre à jour les informations de l'article modifié. Actuellement, je duplique avec des requêtes SQL du genre => Code :
En gros les historiques ont un ID plus fort dans la table que les données de l'article en vigueur. Si j'aurais mis une date de suppression pour l'article modifié et ensuite ajouté les nouvelles données j'aurais eu un ID différent et cela aurait posé problème pour d'autres applications pour le service Qualité, Production, Magasin, ... Au niveau des paramètres et des stats. Je ne sais pas si j'ai bien été clair sur ce point particulier ? Ensuite j'exécute une requête SQL me permettant de mettre à jour l'article (celui avec l'ID le plus faible de la table). Ma question, c'est que je sélectionne les colonnes par leur nom en omettant l'ID de l'occurrence car Identity et je rentre manuellement la date de suppression. Seulement il se trouve que certaines tables servant de destination utilisé par mon Workflow peuvent-être modifiée sur leur structure. Le problème c'est que je dois absolument historiser la ligne entière en cas de modification article. L'idéal serait de faire => Code :
L'idée que j'ai commencé à faire est de créer une table temporaire => Code :
J'ai imaginé un cas comme celui-là après mon "DROP COLUMN" => Code :
L'une des soluce que je vois est d'utiliser les requêtes dynamiques. Je récupère toutes les colonnes de "BDDArticle.dbo.maTable" en excluant celle de "ID" dans le "WHERE" de la vue système. Ensuite => Code :
Auriez-vous d'autres propositions ou des avis ? Merci d'avance pour votre aide. |
||||||||||
|
|
00
|
|
|
#2 |
![]() ![]() |
Vous n'avez pas tellement d'alternative, si vous insérez un champ comprenant un IDENTITY,
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql Administrateur SAP Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com