Как объединить две базы данных в одну в SQL Server 2008? - PullRequest
0 голосов
/ 04 апреля 2010

У меня 2 компьютера, на каждом из которых установлен SQL Server 2008, и есть база данных с данными.

Мне нужен способ, которым я могу перемещать данные в моей БД с этого SQL Server на другой (другой компьютер с той же БД)

  • перенос данных с одного ПК на другой -

Существует одна проблема, столбец ID, потому что каждая БД на моих 2 ПК содержит данные, поэтому этот столбец имеет значения 1,2,3, ....... (данные будут конфликтовать с другими данными в моя БД)

Есть ли способ решить мою проблему и успешно переместить данные?

1 Ответ

1 голос
/ 04 апреля 2010

Являются ли эти столбцы идентификаторов типа IDENTITY? Если это так, то при вставке новых данных из второй базы данных будут сгенерированы новые идентификаторы -> без конфликтов. Это может означать, что вам может понадобиться отслеживать вставки, чтобы вы могли определить, во что был переведен старый идентификатор из БД №2, когда он был вставлен в БД № 1.

Если эти столбцы являются , а не столбцами IDENTITY, вы можете просто добавить достаточно большое число к старым значениям, например, замените каждый идентификатор (например, 5) идентификатором + 100'000 = 100'005 ->, чтобы избежать столкновений. Опять же, если у вас есть какие-либо данные, ссылающиеся на эту основную таблицу в вашей БД №2, вам придется исправить старые ссылки (идентификаторы старого внешнего ключа) на новые значения, прежде чем вставлять их в таблицу на вашей новой БД.

Это немного грязно - но это определенно можно сделать, если подумать об этом достаточно подробно. По сути, вам нужно будет перенумеровать импортируемые данные, и вам нужно убедиться, что нет никаких конфликтов. В SQL Server нет функций, которые могли бы вам в этом сильно помочь - к сожалению, нет команды «импортировать эти данные и перенумеровать их ID».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...