Question

Je travaille actuellement sur un projet dans lequel des données (importantes) ont été corrompues. Plus précisément, la base de données utilise des GUID en tant que clés primaires sur la plupart des tables, mais elle n’impose pas l’intégrité des données entre ces tables (en raison d’une longue attente, celle-ci a été achetée à une autre société et intégrée à notre discussion sur les trucs). Un effort est en cours pour introduire l’intégrité référentielle, mais les données doivent être nettoyées avant que cela soit possible.

Une partie de cette corruption de données provient du fait que différentes clés d'entité ont été commutées ou insérées dans des colonnes incorrectes. Par exemple, un " ProductId & valide; la valeur existe dans un " CustomerId " champ dû au logiciel insérant la mauvaise clé dans la mauvaise colonne. Cela se produisait depuis des mois dans la base de données avant que le problème ne soit finalement résolu (lors d’un travail d’agrégation de données) et l’effort de nettoyage est maintenant plutôt important.

Je me demande s’il est possible de trouver un GUID dans une base de données. En revanche, si j’ai un GUID qui, à mon avis, est une clé primaire dans une table, existe-t-il un moyen dans T-SQL de demander des correspondances avec n’importe quelle colonne de clé identifiant unique connue?

Je sais que le GUID dont je dispose n'est pas un CustomerId, mais il pourrait s'agir d'un autre identifiant de clé primaire provenant d'une autre table. Jusqu'à présent, l'équipe recherchait manuellement dans les autres tables des correspondances avec les GUID non autorisés pour savoir si elle pouvait trouver le "type". de la clé. Ils sont même allés jusqu'à créer des scripts avec beaucoup de "select * from [table] où [tableId] = @ rogueGUID". instructions qui recherchent une correspondance dans les tables d’entités connues. Cependant, cette approche n’est pas très efficace.

Je recherche ce script non seulement pour ce projet, mais également parce que je pense qu'un "Ce GUID existe-t-il en tant que valeur de clé primaire n'importe où dans cette base de données?" type de requête serait un atout utile dans une boîte à outils de développement. Toute aide est appréciée.

Était-ce utile?

La solution

Une question similaire à celle-ci a été posée et a répondu ici . J'espère que cela aidera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top