2016-09-26 1 views
0

У меня два вопроса, относящиеся к миграции SQL данные:Лучший способ переноса приращения ID и конвертировать в Guid

1. Перенести приращение ID от db1.table к db2.table (различные базы данных)

Пример:

enter image description here

Мой кошмар - это когда мне нужно переместить данные для этих 3 таблиц из одной базы данных в другую. Идентификатор из двух баз данных не идентичен.

На данный момент, моя лучшая практика после миграции Guest и Room таблицы, я буду использовать Excel с Vlookup обновить все GuestId и RoomId в таблице Booking с новым идентификатором и после этого мигрирующими всех этих измененных данных.

Вопрос: Есть ли какие-либо лучшие способы пройти этот кошмар?

Пожалуйста, обратите внимание, что в этом примере, только три таблицы, упомянутые, но в моей реальной ситуации, не менее 5 столов объединяясь ...

2. Перенос из IncrementId в Guid

Для нового проекта я использую уникальный Guid вместо традиционного идентификатора инкремента для первичного ключа таблицы.

Вопрос: Какова наилучшая практика для переноса старой таблицы SQL Server с увеличенного идентификатора на Guid?

EDIT: Я использую SQL Server 2012 и могу даже использовать Entity Framework для доступа к моей базе данных. Так как до тех пор, пока это может помочь, SQL-скрипт или код программирования C# оба полезны

+0

@marc_s Спасибо за редактирование моего вопроса. У вас есть предложения по моей проблеме? – Jacky

+0

кроме этого: * не делаем этого! * - нет, извините. Я думаю, что GUID как ПК в ваших таблицах SQL Server - это ужасно плохая идея, но, похоже, вы абсолютно привержены идее идти по этому пути, поэтому я просто заткнусь и позволю вам сделать свой собственный опыт с этим ..... –

+0

Первый вопрос - клиент, поэтому я не могу этого избежать. Но для моего второго вопроса я читаю ваше сообщение о GUID: http://stackoverflow.com/a/11938495/3133518. В любом случае, спасибо – Jacky

ответ

0

Вы можете добавить дополнительный столбец в целевую базу данных как int ExternalID (или аналогичный) и скопировать исходный идентификатор int в этот столбец. Затем ваш процесс миграции должен ссылаться на этот столбец.

Смежные вопросы