Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

scroll top