Нормализация существующей базы данных SQL - PullRequest
2 голосов
/ 29 августа 2010

У меня есть база данных с одной таблицей, которую я унаследовал и перенес на SQL Server, а затем нормализовал ее, создав, связав и заполнив целую кучу таблиц типа поиска, которые представляли элементы в основной таблице. Теперь я хочу заменить эти элементы в исходной таблице их внешними ключами. Я застрял, написав кучу запросов или UDF, а затем гигантский оператор INSERT, чтобы выполнить это, или есть инструмент, который я могу использовать, чтобы указывать на различные поля и позволять ему справляться с тяжелой работой для меня?

Ответы [ 2 ]

2 голосов
/ 29 августа 2010

Redgate SQL Refactor поставляется с 14-дневным периодом оценки и имеет рефакторинг "Split Table", который звучит так, как будто он может делать то, что вам нужно?

Функция описана так:

Разделение таблицы разбивает таблицу на две части таблицы, и автоматически переписывает ссылки на хранимые процедуры, представления, и так далее. Вы также можете использовать это рефакторинг для введения ссылочного таблицы целостности . Вы можете выбрать это особенность из контекстного меню в Обозреватель объектов Management Studio.

1 голос
/ 29 августа 2010

У меня был похожий опыт.Однажды я унаследовал довольно большую базу данных, которая требовала серьезного пересмотра схемы, прежде чем смотреть на нее без презрения.

Поскольку обновление было довольно значительным, я разработал пакет служб SSIS для переноса данных из старой схемы вновый.Операции поиска были полезны для сопоставления старых текстовых значений с новыми ключами.Я держал сценарий моей старой схемы и данных под рукой и многократно восстанавливал базу данных в песочнице и перенастраивал, пока не смог удовлетворить все возможности, что миграция была надежной.

Я обнаружил, чтотолько умеренная кривая обучения для начала работы с SSIS.Если инструмент доступен вам, я рекомендую попробовать.

...