Как сделать триггер в SQL для запуска события в C# dot net?
Я не хочу усложнять ситуацию, приводя все подробности фактической причины этого требования. Поэтому я постараюсь привести простой пример.
Следующее мое требование:
1) открывайте окно сообщений всякий раз, когда происходит изменение стоимости в таблице, называемой запасом.
2) простыми словами, если я выполняю следующий запрос в MS SQL:
обновить stocktable set stockcount = 4, где StockID = 1111
Затем мое приложение должно распознать, что есть изменение значения, поэтому оно должно дать мне всплывающее окно в MessageBox в моем приложении.
Что я уже пробовал:
Я смог добиться этого, проверяя количество запасов каждую секунду с помощью таймера.
Но это неосуществимо с точки зрения производительности. Потому что если, скажем, есть 500 пользователей, то на всех 500 компьютерах будет 500(человек) * 12(часов) * 60(минут) * 60(минут) в день.
Следовательно, другой способ, который я мог бы придумать, - это вызвать функцию для отображения MessageBox только тогда, когда есть изменение, а не проверять изменение из приложения каждую секунду.
Пожалуйста помочь. Я пишу этот код в Visual Studio с использованием C#. Бэкэнд - это MSSQL.
CHill60
До SQL Server 2008 (?) существовала вещь под названием Notification Services, которая, как я полагаю, была заменена StreamInsight-см. StreamInsight для непрограммистов - статьи TechNet - США (английский) - TechNet Wiki[^]
В любом случае вам придется реализовать шаблон наблюдателя-см. Изучение шаблона проектирования наблюдатель [^]
Возможно, вы захотите рассмотреть возможность выполнения фактического наблюдения в другом потоке