У меня есть table a
и table b
. (SQL Server 2008)
Обе таблицы имеют одинаковую схему.
Для целей этого вопроса рассмотрим table a
= мою локальную таблицу разработчиков, table b
= живую таблицу.
Мне нужно создать сценарий SQL (содержащий операторы UPDATE/DELETE/INSERT
), который обновит таблицу b так, чтобы она соответствовала таблице a. Затем этот сценарий будет развернут в действующей базе данных.
Есть ли какие-нибудь бесплатные инструменты, которые могут это сделать, или еще лучше, как я могу сделать это сам?
Я думаю, что мне, вероятно, нужно выполнить какое-то соединение для всех полей в таблицах, а затем сгенерировать динамический SQL на основе этого.
У кого-нибудь есть идеи?
EDIT
Хорошо, подумал, что немного проясню этот вопрос.
Таблица, которую мне нужно синхронизировать, является простой справочной таблицей. Данные очень просты и понятны.
Вот идея того, как TABLE A
может выглядеть:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 0
Вот идея того, как TABLE B
может выглядеть:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 1
По сути, все, что я хочу сделать, это обновить этот столбец BIT
(IsFoo
) в TABLE B
, чтобы он соответствовал соответствующему значению в TABLE A
для того же IdFoo.
Имейте в виду:
TABLE A
на моей локальной машине
TABLE B
находится на живом сервере
Очевидно, у меня есть (надежная) резервная копия TABLE B
на моей локальной машине, для которой мне нужно выполнить скрипт, а затем запустить скрипт на живом сервере.
Таблица также имеет ссылочную целостность (другие столбцы, которые я не показывал). Это означает, что я не могу просто удалить все в TABLE B
и сделать вставку из TABLE A
.
Этот скрипт будет разовым. Поэтому нет необходимости делать такие вещи, как связанный сервер, репликация и т. Д. Оцените ответы, ребята. =)
EDIT:
Ладно. Итак, я пошел с ответом Олега (Сравнение данных VS2010). Быстро, легко и работает заклинание.
Не сказать, что другие ответы неверны. Я ценю все ответы!