НАПОМИНАЮ, ЧТО ПЕРЕД ТЕМ, КАК ВЫ БУДЕТЕ ЧТО-ТО ДЕЛАТЬ С РАБОЧЕЙ БД ОБЯЗАТЕЛЬНО НУЖНО СДЕЛАТЬ ЕЁ БЭКАП!

Я совсем недавно стал практиковаться с SQL и, начал осознавать, что многие рутинные задачи манипулирования данными можно решить посредством паттернов (шаблонов). Другими словами, например, если стоит задача избавиться от дублирующихся записей в какой-либо таблице, нет необходимости каждый раз “изобретать велосипед”, достаточно взять за основу шаблон кода, немного переписать его под нужную таблицу и скрипт избавления от дубликатов готов.

Данное решение мне показал мой наставник по SQL – Ильнур, и я решил увековечить его в своем блоге.

Для примера в этой статье я буду рассматривать поиск дубликатов-сотрудников, в таблице T_WORKER, перепривязку всех внешних ключей на одного из сотрудника-дубликата, с целью оставить одного из дубликатов полностью без зависимых записей в других таблицах, и дальнейшее удаление всех сотрудников-дубликатов, оставив из каждой дублирующейся записи только одну. Следующий скрипт:

Этот код можно взять за шаблон для поиска и удаления дублирующихся записей в различных таблицах и так как мы можем автоматизировать сборку этого кода с помощью динамического SQL, я написал скрипт, который на основе некоторых входных данных сам генерирует готовый скрипт для удаления записей-дубликатов.

Template_Removal_Of_Dublicates.zip

Статья будет корректироваться, вполне возможно, что я в ней что-то упустил.