Объединение 2 таблиц в одну таблицу с разной схемой

Я хотел бы синхронизировать одну таблицу с результатом объединения двух таблиц. Я разработал эти базы данных для выполнения (EQUI JOIN находится между PERSON.AddressId и ADDRESS.Id):

Как я могу выполнить подготовку баз данных и синхронизацию?

До сих пор я разработал несколько примеров распространенных сценариев, таких как разные имена таблиц, разные имена столбцов или удаление столбцов.

Как этого добиться?

-->ПЕРВАЯ БД‹--

ЧЕЛОВЕК:

->Id(PK, int, не ноль)

-> Имя (nchar (10), не нуль)

-> Фамилия (nchar (10), не ноль)

->AddressId(FK, int, не ноль)

АДРЕС:

->Id(PK, int, не ноль)

-> Улица (nchar (10), не нуль)

-> Город (nchar (10), не нуль)

-> Страна (nchar (10), не ноль)


-->ВТОРАЯ БД‹--

КЛИЕНТ:

->Id(PK, int, не ноль)

-> Имя (nchar (10), не нуль)

-> Фамилия (nchar (10), не ноль)

->Адрес(nchar(10), не ноль)

-> Город (nchar (10), не нуль)



person ufo    schedule 26.07.2012    source источник


Ответы (1)


Насколько я могу судить из документации, схема должна совпадать, чтобы синхронизация работала. Вы можете синхронизировать таблицы с одинаковой схемой, но разными именами, используя свойство GlobalName объекта DbSyncTableDescription. См. сообщение JuneT:

http://jtabadero.wordpress.com/2011/05/08/synching-tables-with-other-table-names/

В этой конкретной ситуации, я думаю, вам лучше всего создать Person и Address во второй БД, а затем создать «Клиент» в качестве представления (также во второй БД), чтобы представить две таблицы в консолидированном виде.

person jfish    schedule 26.07.2012
comment
Спасибо за ваш ответ. Я уже прочитал сообщение JuneT, разные имена не проблема... Проблема в том, как выполнить соединение... Решение, которое вы предложили, правильное и умное, но, к сожалению, я не могу его принять. Я не могу изменить уже существующую схему базы данных, поэтому я не могу добавить человека и адрес во вторую базу данных! - person ufo; 27.07.2012
comment
@jfish, вы также можете синхронизировать разные схемы. - person JuneT; 30.07.2012
comment
Вы не можете использовать представления в области синхронизации. @JuneT только что разъяснил мне комментарий к моему ответу (который я сразу же удалил). отслеживание изменений осуществляется на уровне таблицы. какую таблицу отслеживания будет использовать представление? как представление скажет, если было изменение? - person Scott Munro; 30.07.2012