Лучшие практики для перемещения данных с использованием триггеров в SQL Server 2000 - PullRequest
1 голос
/ 18 января 2010

У меня возникли проблемы при попытке переместить данные из SQL Server 2000 (SP4) в Oracle10g, поэтому ссылка готова и работает, теперь моя проблема заключается в том, как переместить подробные данные, мой случай следующий:

Таблица А - Мастер Таблица B - Деталь

Оба связаны для работы с триггером (FOR INSERT)

Таким образом, мой запрос должен запросить оба запроса для создания надежного запроса, поэтому, когда триггер срабатывает при первой вставке мастера, он прошел нормально, на следующем шаге пользователь вставит одну или несколько деталей в таблицу B, поэтому триггер быть уволенным в любое время при увеличении записи, моя проблема в том, что мне нужно отправить, например:

1 мастер - 1 деталь = 2 строки (работает нормально) 1 мастер - 2 детали = 4 строки (проблема)

Во втором случае я работаю с деталями, которые в каждом выделении для каждой вставки дублируют данные, я сказал, что если в детализации есть 2 детали, то обычно это будет 2 выбора с 1 строкой каждый, но во втором выборе строки удваиваются (запросите первую вставленную деталь)

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

1 Ответ

2 голосов
/ 23 января 2010

В большинстве случаев это сводится к ошибке кодирования, и я писал об этом здесь:

http://www.brentozar.com/archive/2009/01/triggers-need-to-handle-multiple-records/

Тем не менее, я обеспокоен тем, что произойдет с откатами. Если у вас есть программа на вашем SQL Server, которая выполняет несколько операций подряд для разных таблиц, и они инкапсулированы в разные транзакции, я могу представить сценарии, в которых данные будут вставляться в Oracle, но не будут в SQL Server. Я бы не советовал использовать триггеры для синхронизации данных между серверами.

Вместо этого рассмотрите возможность использования чего-то вроде DTS или SSIS для регулярной синхронизации двух серверов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...