Есть ли способ обнаружить вставку новой строки в SQL? [Дубликат]

1

У меня есть программа на С#, которая позволяет пользователям отправлять и получать текстовые сообщения, сервер, получающий входящие тексты, анализирует сообщения, а затем помещает их в базу данных SQL, и мне было интересно, есть ли способ обнаружить вставку новой строки в эту базу данных и запустить событие, которое уведомляет пользователя о новом входящем сообщении?

Теги:
database

5 ответов

4

Я полагаю, что u использует класс SqlDependency.

Вот пример кода:

Это долго читается, но я предлагаю вам взглянуть на следующую статью MSDN.

0

Есть конечно. Вы можете написать триггер, или вы можете использовать механизм Change Data Capture.

  • 0
    Если (и только если) OP говорит sql и означает sql-server - CDC является специфической функцией SQL Server
  • 0
    Если он пишет на C #, вполне возможно, что это просто сервер SQL
0

Я бы предложил использовать службу Windows, которая будет отслеживать сообщения, добавленные в базу данных SQL Server, а затем запустить соответствующее действие. Другим способом будет использование MSMQ, где вы можете отправить сообщение в MSMQ после его вставки в базу данных. Стол

               User Id , MessageCount  Last Message DateTime
                1           2             1/1/2014 12:30

и обновите эту таблицу, когда получите сообщение.

-2

SQL-триггер после вставки

http://msdn.microsoft.com/en-us/library/ms189799.aspx

Принимая во внимание приведенный ниже комментарий, мой ответ все тот же:

http://www.codeproject.com/questions/341680/Using-Triggers-in-Csharp-and-Sql-Server

И подобный вопрос задал здесь:

В обновлении таблицы активируйте действие в моем коде.NET.

  • 1
    Механизм триггера не совсем то, что нужно OP, я думаю, что он хочет событие C #, которое будет срабатывать после вставки SQL.
  • 2
    Я не согласен с тоном вашего ответа, а с тем, что в этом ответе нет никакого существенного смысла, а всего лишь несколько ссылок.
Показать ещё 3 комментария
-2

Почему бы вам не попробовать триггеры CLR?

http://msdn.microsoft.com/en-us/library/ms254959%28v=vs.110%29.aspx

Вы можете запустить событие из процедуры CLR.

Хотя это и не так. Эти сообщения должны быть помещены в очередь ServiceBus и обрабатываться асинхронно на отдельном потоке или процессе (например, роль рабочего в Azure?)

  • 0
    Комментарий Downvoter?
  • 0
    Я не понизил голос, но это предполагает, что они используют сервер SQL.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню