Как узнать, есть ли изменения в таблице? - PullRequest
0 голосов
/ 23 октября 2018

У нас есть система PLM, в которой пользователи идут и создают / обновляют объекты (например, продукты, Colorway и т. Д.).Этот объект в конечном итоге хранится в базе данных sqlserver.В таблицах есть столбец для modifyTimeStamp.Поле обновило отметку времени, когда пользователь обновил объект.

Мы интегрируем этот инструмент с некоторым другим приложением.Это другое приложение должно знать, когда кто-то создает / обновляет объекты в нашей PLM-системе.

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

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

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

SQL Server имеет функцию под названием " Отслеживание изменений ".Сначала он должен быть активирован для базы данных.Если он активирован, вы можете создавать специальные запросы, которые возвращают информацию об изменениях данных в конкретной таблице.

В соответствии с примером в документах запрос

DECLARE @last_sync_version bigint;  
SET @last_sync_version = <value obtained from query>;  
SELECT [Emp ID], SSN,  
    SYS_CHANGE_VERSION, SYS_CHANGE_OPERATION,  
    SYS_CHANGE_COLUMNS, SYS_CHANGE_CONTEXT   
FROM CHANGETABLE (CHANGES Employees, @last_sync_version) AS C;

вернет изменения данных в таблицу Employees, поскольку @last_sync_version.

0 голосов
/ 23 октября 2018

Я думаю, что есть много способов решить эту проблему.Я постараюсь описать несколько.

  1. Создание планировщика в приложении для прослушивания.Я предлагаю реализовать планировщик, который будет запускать каждый заданный интервал для извлечения последних данных в соответствии с временем изменения и их обработки.

  2. Создание нового API в приложении прослушивания и вызов егочерез приложение создания / обновления.

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

Надеюсь, это поможет вам и удачи!

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