Бедный человек службы конвейера SQL для SQL Express 2008 R2 - PullRequest
0 голосов
/ 26 августа 2010

У меня есть базовая / простая необходимость создания конвейерного процесса передачи из одной базы данных SQL Express 2008 на другой сервер (в равной степени SQL 2008 express).

В основном:

  1. У меня есть одна таблица на СЕРВЕРЕ A, в которую поступают данные, и поле по умолчанию, называемое «загружено», которое снова по умолчанию установлено в «N»

  2. У меня такая же схема таблицы на SERVER B

  3. По времени (скажем, каждые 10 минут) мне нужно получить все записи с сервера SERVER A, для которого в поле «скачано» установлено значение «N», и скопировать всю эту запись на сервер SERVER B

  4. Поскольку каждая запись с сервера SERVER A считывается / успешно копируется на сервер SERVER B, я установил для флага «загружен» значение «Y» (также с полем отметки времени).

Из старых воспоминаний я использовал DTS (теперь, наверное, SSIS), чтобы сделать что-то похожее ... но, конечно, SQL Express не обладает такой привлекательностью !!

Вопрос:

Это просто случай, когда устройство чтения данных SQL получает данные от сервера SERVER A и вручную вставляет оператор SQL в сервер SERVER B (или, конечно, в proc)? какие-нибудь другие скользкие способы?

Спасибо за все комментарии ...

Ответы [ 2 ]

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

о, не используйте флаги! Они не годятся для индексации.

Добавьте два столбца в исходную и целевую таблицы: dt_created dt_modified.

Добавить индекс для каждого.

В целевой базе данных выберите исходную базу данных / таблицу для dt_created> max (target table.dt_created). Это ваши новые записи. Сделайте то же самое для dt_modified, и это будут ваши измененные записи. Увидеть! Репликация бедняков.

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

Ну, а как насчет MySQL с репликацией?Дешево и гладко :-) Но я слишком поздно, чтобы изменить DB ...

...