Frage

Ich arbeite derzeit an einem Projekt, bei dem einige (signifikante) Datenversorgung aufgetreten ist. Insbesondere die Datenbank verwendet Guids als Primärschlüssel in den meisten Tabellen, setzt jedoch nicht die Datenintegrität zwischen diesen Tabellen durch (aufgrund eines langatmigen "Dies wurde von einem anderen Unternehmen gekauft und in unsere Sachen integriert"). Es gibt einen Anstrengung, referenzielle Integrität einzuführen. Die Daten müssen jedoch gereinigt werden, bevor dies möglich ist.

Ein Teil dieser Datenbeschädigung besteht darin, dass verschiedene Entitätstasten in falsche Spalten umgeschaltet oder eingefügt wurden. Zum Beispiel gibt es in einem "CustomerID" -Bieter ein gültiger "produktiver" Wert, der den falschen Schlüssel in der falschen Spalte einfügt. Dies geschah seit Monaten in der Datenbank, bevor das Problem schließlich gefangen wurde (während eines Datenaggregationsjobs), und jetzt ist die Aufräumarbeiten ziemlich groß.

Ich frage mich, ob es eine Möglichkeit gibt, in einer Datenbank einen GUID zu finden. Wenn ich einen GUID habe, von dem ich denke, dass es in einer Tabelle ein Primärschlüssel ist, gibt es einen Weg in T-SQL, nach Übereinstimmungen an eine bekannte Spalte für eindeutige Identifikatorin zu fragen?

Ich weiß, dass das GUID, das ich habe, kein Customerid ist, aber es könnte eine weitere Haupt -Schlüssel -ID aus einer anderen Tabelle sein. Bis jetzt haben das Team die anderen Tabellen manuell nach Übereinstimmungen zu den Rogue -Richtlinien gesucht, um festzustellen, ob sie den "Typ" des Schlüssels herausfinden können. Sie sind sogar so weit gegangen, Skripte mit vielen "Select * aus [Tabelle] auszuwählen, wobei [TableId] = @RogueGuid" Anweisungen nach den bekannten Entitätstabellen nach einer Übereinstimmung durchsucht. Dieser Ansatz ist jedoch nicht sehr effizient.

Ich suche dieses Skript nicht nur für dieses Projekt, sondern auch, weil ich denke, dass ein "diese Richtlinie in dieser Datenbank als Hauptschlüsselwert existiert?" Die Art der Abfrage wäre ein nützliches Gut in einer Entwicklungs -Toolbox. Jede Hilfe wird geschätzt.

War es hilfreich?

Lösung

Eine ähnliche Frage wurde gestellt und beantwortet hier. Hoffentlich hilft dies.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top