Найти GUID в базе данных - PullRequest
       14

Найти GUID в базе данных

0 голосов
/ 11 сентября 2009

В настоящее время я работаю над проектом, в котором произошло некоторое (значительное) повреждение данных. В частности, база данных использует идентификаторы GUID в качестве первичных ключей в большинстве таблиц, однако она не обеспечивает целостность данных между этими таблицами (из-за многословного «обсуждения, которое было куплено у другой компании и интегрировано с нашими материалами»). В настоящее время предпринимаются усилия для введения ссылочной целостности, однако данные должны быть очищены, прежде чем это станет возможным.

Часть этого искажения данных заключается в том, что разные ключи сущностей были переключены или вставлены в неправильные столбцы. Например, допустимое значение «ProductId» существует в поле «CustomerId» из-за того, что программное обеспечение вставило неправильный ключ в неправильный столбец. Это происходило в течение нескольких месяцев в базе данных, прежде чем проблема была окончательно обнаружена (во время задания агрегации данных), и теперь усилия по очистке довольно велики.

Мне интересно, есть ли способ найти GUID в базе данных. Скорее, если у меня есть GUID, который я считаю первичным ключом в некоторой таблице, есть ли способ в T-SQL запрашивать совпадения для любого известного столбца ключа уникального идентификатора?

Я знаю, что GUID, который у меня есть, не CustomerId, но это может быть другой идентификатор первичного ключа из какой-то другой таблицы. До сих пор команда искала в других таблицах совпадения с мошенническими идентификаторами GUID, чтобы выяснить, могут ли они определить «тип» ключа. Они даже зашли так далеко, что создали сценарии с множеством операторов «select * from [table], где [tableId] = @rogueGUID», которые выполняют поиск в известных таблицах сущностей. Однако такой подход не очень эффективен.

Я ищу этот скрипт не только для этого проекта, но и потому, что я думаю: «Существует ли этот GUID как значение первичного ключа где-нибудь в этой базе данных?» Тип запроса будет полезным активом в наборе инструментов разработки. Любая помощь приветствуется.

1 Ответ

1 голос
/ 11 сентября 2009

Подобный вопрос был задан и дан ответ здесь . Надеюсь, это поможет.

...