DGKumar Ответов: 4

Как создать службу windows, которая в таблице базы данных вставляет данные в другую таблицу базы данных.


У меня есть 2 базы данных
1: АБР
2: БДБ

ADB содержит ADBTabe с 3/более полями
BDB содержит BDBTabe с 3 полями полями

Когда записи вставляются в "ADB.ADBTabe", то задание должно быть взято данные из этой таблицы ADB и вставлено в BDB.BDBTable

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

Что я должен реализовать на стороне БД sql server?
Как я могу реализовать Windows / любую другую работу для этого?

Не могли бы вы дать мне правильное предложение?

Что я уже пробовал:

Я понятия не имею о сценарии я новичок

lw@zi

Почему бы просто не запустить 2 запроса insert?

[no name]

Вы хотите запустить интервал обслуживания/задания? Значит, он будет работать каждые 5/10/.. минут.

Если ответ "нет", то вам не нужно никаких заданий/окон для реализации.

Sinisa Hajnal

Почему бы не создать связанные серверы и не вставить их либо непосредственно из хранимой процедуры (запустить две вставки в транзакции), либо с помощью триггера OnInsert?

DGKumar

Да, я хочу создать службу или задание для вставки данных в другую таблицу БД с помощью связанного сервера с помощью хранимой процедуры. Не могли бы вы, пожалуйста, предоставить лучший подход или ссылки, чтобы сделать это.

4 Ответов

Рейтинг:
2

iliyas.patel

Решение 1:
Создайте столбец (скажем, "updatedrow") по умолчанию, который будет истинным. Если вы вставляете/обновляете новую строку, то установите updatedrow в false для этой записи.

Решение 2:
Создайте новую таблицу "xyz", которая будет содержать первичный ключ вновь обновленной строки. позже переместите данные с помощью первичных ключей, присутствующих в таблице xyz.



Решение 3. выполните несколько запросов для обновления обеих таблиц, но это может привести к снижению производительности приложения.


CHill60

Какое из двух ваших решений должно быть ответом?
Пожалуйста, не публикуйте несколько решений одного и того же вопроса - это очень запутанно. Вместо этого используйте Улучшите решение ссылка для обновления исходного решения.

Рейтинг:
1

iliyas.patel

Напишите веб-сервис(может быть сервис WCF), который будет извлекать данные из BDB и вставлять их в BD.(Прямой вперед)


Теперь, как только вы обновите ADB.ADBTabe затем активировать уведомление, чтобы веб-сервиса. Он будет извлекать данные из BDB и вставлять их в BD.


Дайте мне знать, если у вас возникнут какие-то сомнения.


DGKumar

Спасибо за ваш ответ.
Я думаю, что каждый раз полные данные будут извлекаться и вставляться в конечный источник. Так ведь?
Предположим, что исходная таблица БД содержит более 10000 записей в первый раз после этого я вставил одну запись в исходную, а затем что произойдет в целевой таблице БД, как я могу идентифицировать и вставить эту конкретную недавно вставленную запись только в целевую таблицу БД.

Рейтинг:
1

RickZeeland

Могу ли я предложить использовать Зависимость от SQL, смотрите статью:

Зависимость SQL с помощью C#.NET и SQL Server 2012[^]

Если у вас есть более новая версия SQL Server, вы также можете использовать "отслеживание изменений", см.:

Отслеживание изменений SQL Server в таблице (без триггеров)[^]