Ваш первый шаг - определить, имеют ли эти базы данных одинаковую структуру. Даже если вы думаете, что они делают, вам нужно сравнить их, чтобы убедиться, что они делают. Скорее всего, будут некоторые, которые настроены или пропустили цикл обновления или два.
Теперь, в зависимости от количества клиентов и количества записей на одного клиента, ваши таблицы могут стать огромными. Вы уверены, что это не создаст проблемы с производительностью? В любом случае вам может понадобиться по-новому взглянуть на индексирование. Возможно, вам понадобится гораздо более мощный набор серверов, а также, возможно, потребуется разбить клиент на разделы для повышения производительности.
Далее, да, для каждой таблицы нужен какой-то идентификатор сайта. Кроме того, в зависимости от вашего дизайна у вас могут быть первичные ключи, которые больше не являются уникальными. Возможно, вам придется переопределить все первичные ключи, чтобы включить siteid. Всегда указывайте это поле при добавлении.
Теперь все ваши запросы, хранимые процедуры, представления, файлы udf необходимо будет переписать, чтобы гарантировать, что siteid является их частью. Обратите особое внимание на любой динамический SQL. В противном случае вы могли бы показывать информацию клиента A клиенту B. Клиентам это не нравится. Однажды мы привели клиента из отдельной базы данных в основное приложение (когда они решили, что не хотят платить за отдельный сервер). Разработчик пропустил только одно место, где должен быть добавлен client_id. К сожалению, это отправляло электронные письма каждому клиенту относительно информации, являющейся собственностью этого клиента, и, что еще хуже, это был ночной процесс, который продолжался посреди ночи, поэтому об этом не было известно до следующего дня. (Разработчику очень повезло, что его не уволили.) Суть в том, чтобы быть очень осторожным, когда вы делаете это и тестируете, тестируете, тестируете и еще тестируете. Обязательно протестируйте все автоматизированные закулисные вещи, а также вещи пользовательского интерфейса.