Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как получить уведомление об изменении в таблице  [new]
Tereha
Member

Откуда:
Сообщений: 51
Уважаемые Гуру!
Требуется написать сервис уведомления о том, что в таблице mssql произошло какое -либо изменение (удаление, изменение или добавление записи). Допустим , асинхронный сервис на сервере получил такой запрос от web приложения. Как сделать, чтобы sql сервер посылал прерывание в программу с уведомлением о выполнении CRUD операции?
26 мар 14, 14:16    [15789252]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
https://www.sql.ru/articles/mssql/02040201alertserviceforsqlserv.shtml
26 мар 14, 14:31    [15789341]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Tereha
Member

Откуда:
Сообщений: 51
У меня wcf service на C# в web-приложении ASP.NET. Возможно ли чтобы хранимая процедура
генерировала событие в процедуру приложения ('ThrowEvent')?
26 мар 14, 15:41    [15789910]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Напишите clr-сборку и делайте в ней что угодно.
26 мар 14, 15:45    [15789943]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Tereha
Member

Откуда:
Сообщений: 51
Видимо, это одно из решения. Основано на SqlDependency Class
26 мар 14, 16:40    [15790376]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Tereha
Member

Откуда:
Сообщений: 51
http://dotnet.dzone.com/articles/c-sqldependency-monitoring

Сообщение было отредактировано: 27 мар 14, 06:15
26 мар 14, 16:41    [15790389]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Tereha
SqlDependency
А вот знаешь как делать, если табла лярдная? Он же к запросу цепляет. ;)
Как ни крути, что SqlDependency что иной подход - всё ServiceBroker.

Решение от mike909 тут кстати можно использовать.

Т.е. вешаешься на WAITFOR RECEIVE, а сообщение или от события или явно SEND в триггере.
Просто SqlDependency имеет подводные камни.
27 мар 14, 11:44    [15793606]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Просто не стоит городить системы реального времени на базе сиквела. Клиенты должны сами договариваться между собой.
27 мар 14, 12:01    [15793763]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Владислав Колосов
системы реального времени
Где вы тут их увидели?
27 мар 14, 19:39    [15796993]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Mnior, немедленная реакция клиентов на изменения.
28 мар 14, 10:36    [15799134]     Ответить | Цитировать Сообщить модератору
 Re: Как получить уведомление об изменении в таблице  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Владислав Колосов
немедленная реакция клиентов на изменения.
Спрашиваю ещё раз, где вы это увидели?
Это вопрос возможно не только вам но и ТС, если вскроются обстаятельства.
Никакую "немедленную реакцию" и "системы реального времени" я тут не вижу. Не надо крайностей. Не АЭС обсуживаем.

Более того, в зависимости от задачи как раз решение через БД будет более обоснованно.
К примеру редкая нотификация потенциально может затронуть огромный объём. Поэтому пусть это будет обрабатываться поближе к самим данным. Хранить этот объём в оперативе апликейшина нецелесообразно.
И ради этой нотификации раздувать систему до Map-Reduce просто бессмысленно.
28 мар 14, 16:45    [15802238]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить