2013-08-27 2 views
0

У меня есть два сервера баз данных. Я получаю обновленную информацию о деталях с одного сервера базы данных, используя процедуру, которая сохраняется в другой базе данных. Затем я хочу обновить таблицу Item другой базы данных с помощью набора результатов процедуры. Если есть новые товары, добавьте в первую базу данных я тоже хочу вставить эти записицикл через набор результатов хранимой процедуры и таблицы обновлений

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

ответ

0

Чтобы расширить ответ на @Dan Bracuk, запишите данные в таблицу temp, а затем обновите записи в вашей зеркальной базе данных значениями, находящимися в таблице temp, все с помощью первичного ключа. (Так как это похоже, что это точное зеркало, я предполагаю, что вы сохраняете все ключи в таблице).

Затем, когда это будет сделано, вы можете выбрать все записи из таблицы тем, которые НЕ существуют в реальной таблице, а затем вставить эти записи.

В результате получается 2 заявления (обновление, затем вставка), что лучше, чем выполнение RBAR.

1

Поместите результирующий набор во временную таблицу и обновите таблицу других db из этой таблицы temp. Это позволяет вам запускать один запрос на обновление вместо использования цикла.

Детали зависят от используемых вами rdbms, чего вы не указали. Вы также должны будете убедиться, что соответствующие разрешения установлены на обоих dbs.

+0

Если на другом сервере базы данных есть новые записи (которые я получил данные), я тоже хочу добавить эти записи. – udaya726

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