Если личность не участвует в отношениях, да, вы можете удалить ее и создать заново. Если есть отношения, ситуация более сложная.
Во-первых, вам нужно заново создать записи номера дублированного идентификатора, заново вставить их в таблицу и получить для них новый идентификатор. Вам нужно идентифицировать дочерние записи для идентификаторов, которые повторяются, а затем выяснить, какие из них идут на какой из двух новых идентификаторов. Это самая сложная часть и даже может быть невозможной.
Как только это будет сделано, вы обновите эти дочерние записи на новые идентификаторы. затем вы удаляете старые родительские записи, когда больше нет дочерних записей. Если вы (и вы, я имею в виду компанию, не обязательно программиста, иногда это могут делать только пользователи), вы не можете определить, к какой родительской записи относится дочерняя запись, затем отбросьте эти дочерние записи и затем отбросьте старого родителя. записей. Если у вас есть дочерние записи, которые вы не хотите удалять, потому что вам нужны данные для исторического отчета о затратах или чего-то подобного, сохраните одну из старых родительских записей. В этом случае я бы, вероятно, заменил бы одну из родительских записей на «Неизвестный» в качестве имени пользователя или любого другого значения в таблице, которое также идентифицирует запись, а затем удалил бы другой дублированный идентификатор.
Удачи, такие проблемы с целостностью данных трудно исправить. Также я бы искал в вашей базе кода фразу «set indentity_insert», чтобы убедиться, что недальновидный программист не избегает правильного использования поля идентификации. Вы не хотите, чтобы эта проблема повторялась. Если вы найдете этот код и узнаете, кто это сделал с вами (контроль над исходным кодом - замечательная вещь), я бы посоветовал, что это лучший человек, которого можно назначить, чтобы исправить любые проблемы с целостностью данных. Пройдите через один раз, чтобы исправить проблему целостности данных, и в будущем вы будете гораздо более осторожным программистом.