Непрерывно получать поток каждой вставки из таблицы SQL Server - PullRequest
0 голосов
/ 13 июня 2019

Я хочу отслеживать вставки в таблицу SQL Server. Как и два столбца UserID и Activity из таблицы (userData), так что, как только вставка произойдет в эту таблицу, я получу значения, которые были вставлены и переданы в C #.

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

PS. Я знаю, как получить данные из SQL Server и вставить данные в таблицу SQL Server с помощью C #. Но не знаю, как добиться этого в режиме реального времени, чтобы принимать решения по ним.

Ответы [ 3 ]

2 голосов
/ 13 июня 2019

Вы можете использовать SqlDependency класс и использовать его OnChange событие.Просмотрите документ MSDN, чтобы увидеть пример того, как это сделать.

dependency.OnChange+=new
           OnChangeEventHandler(OnDependencyChange);
0 голосов
/ 13 июня 2019

Использование можно также посмотреть на SqlTableDependency .Это AC # компонент, вызывающий события при изменении записи.Вы можете найти более подробную информацию по адресу: https://github.com/christiandelbianco/monitor-table-change-with-sqltabledependency

SqlTableDependency - это компонент высокого уровня C #, используемый для аудита, мониторинга и получения уведомлений об изменениях в таблице записей SQL Server.Для любого изменения таблицы записей, например операции вставки, обновления или удаления, уведомление, содержащее значения для измененной записи, доставляется в SqlTableDependency.Это уведомление содержит вставку, обновление или удаление значений записи.

enter image description here

Эта система отслеживания изменений таблицы имеет преимущество в том, чтобы избежатьвыберите для получения обновленной записи таблицы, поскольку обновленная запись значений таблицы доставляется по уведомлению.

0 голосов
/ 13 июня 2019

Создать триггер вставки

    CREATE TRIGGER [dbo].[userDataInsert]
    ON [dbo].[userData]
    FOR INSERT
    AS
    BEGIN
    SET NOCOUNT ON

    select * 
        from    inserted

   -- do whatever you need with inserted


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