Объединить две базы данных SQL Server - PullRequest
1 голос
/ 26 августа 2011

Привет, у меня такая ситуация:

  • SQL Server 1 (производство) с объектами A, B, C
  • SQL Server 2 (разработка) с объектами A, B, C, D, E, F, G, H, I.

Я хотел бы знать, как я могу хранить все объекты SQL Server 1 (A, B, C), но в то же время я хочу добавить все новые объекты из SQL Server 2. В SQL Server 2 A,B,C есть та же схема, но поддельные данные относятся к одним и тем же объектам в SQL Server 1, поэтому я не могу сделать полную резервную копию SQL Server 2 и восстановить ее в SQL Server 1.

Оба сервера работают под управлением SQL Server 2008.

Я знаю, что, очевидно, разумная процедура для этого, но мой небольшой опыт в управлении SQL Server делает меня слепым!

Заранее спасибо за любую помощь!

Ответы [ 3 ]

3 голосов
/ 26 августа 2011

Вам нужны хорошие инструменты!Например:

  • Red-Gate SQL Compare помогает сравнивать и синхронизировать структуру ваших баз данных (например, объекты баз данных, такие как таблицы, представления, процедуры, ограничения и т. Д.)

  • Red-Gate Сравнение данных SQL помогает сравнивать и синхронизировать данные в таблицах, например, в таблицах поиска и системных таблицах или даже в таблицах фактических данных

0 голосов
/ 26 августа 2011

Вы можете сделать простой скрипт PHP для запуска.

Этот скрипт должен подключиться к первым данным и импортировать данные во второй

0 голосов
/ 26 августа 2011

Вы можете использовать разные схемы, например, на обеих базах делаю:

CREATE SCHEMA something;
GO

Затем вы можете переместить «дубликаты» объектов в этой схеме на одну сторону:

ALTER SCHEMA something TRANSFER dbo.A;
...

Затем вы можете просто переместить объекты something.objects в другую базу данных, используя такие инструменты, как SQL Compare и т. Д. У вас будет два объекта с именем A, но они будут в разных схемах. Естественно, ваш код должен ссылаться на правильную схему.

Но почему они должны быть в одной базе данных? Вы можете хранить их как отдельные базы данных и использовать синонимы в одной для указания на объекты в другой, так что все выглядит «локально». Как вы планируете запрашивать из A, если они находятся в одной схеме и в одной базе данных?

Не могли бы вы объяснить, чего именно вы пытаетесь достичь? Вы пытаетесь сделать вашу производственную базу данных обратно совместимой, чтобы вы могли вносить изменения в свои разработки, не ломая существующие приложения? Я думаю, что гораздо понятнее просто направить ваше тестовое приложение на другую базу данных, а затем полностью обновить производственную базу данных (не как у Франкенштейна).

...