Domanda

Attualmente sto lavorando a un progetto in cui si sono verificati alcuni (significativi) casi di corruzione dei dati. In particolare, il database utilizza GUID come chiavi primarie sulla maggior parte delle tabelle, tuttavia non impone l'integrità dei dati tra quelle tabelle (a causa di un lungo processo, questo è stato acquistato da un'altra società e integrato con la nostra discussione roba). È in corso uno sforzo per introdurre l'integrità referenziale, tuttavia i dati devono essere ripuliti prima che ciò sia possibile.

Parte di questo danneggiamento dei dati è che chiavi di entità diverse sono state cambiate o inserite in colonne errate. Ad esempio un "ProductId" valido " il valore esiste in un " CustomerId " campo a causa del software che inserisce la chiave sbagliata nella colonna sbagliata. Questo stava accadendo da mesi nel database prima che il problema fosse finalmente risolto (durante un processo di aggregazione dei dati) e ora lo sforzo di pulizia è piuttosto grande.

Quello che mi chiedo è se esiste un modo per trovare un GUID in un database. Piuttosto, se ho un GUID che penso sia una chiave primaria in qualche tabella, c'è un modo in T-SQL di chiedere corrispondenze a qualsiasi colonna chiave identificatore univoco conosciuta?

So che il GUID che ho non è un ID cliente, ma potrebbe essere un altro ID chiave principale di un'altra tabella. Fino ad ora la squadra ha cercato manualmente le altre tabelle per trovare corrispondenze ai GUID non autorizzati per vedere se potevano trovare il "tipo" della chiave. Sono persino arrivati ??al punto di creare script con un sacco di " select * da [table] dove [tableId] = @ rogueGUID " istruzioni che ricercano una corrispondenza nelle tabelle delle entità note. Tuttavia, questo approccio non è molto efficiente.

Sto cercando questo script non solo per questo progetto, ma anche perché penso che questo GUID esista come valore chiave principale in qualsiasi parte del database? " il tipo di query sarebbe una risorsa utile in una casella degli strumenti di sviluppo. Qualsiasi aiuto è apprezzato.

È stato utile?

Soluzione

Una domanda simile a questa è stata posta e ha risposto qui . Speriamo che questo possa aiutare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top