Mohamma_rez Ответов: 5

Как обновить данные на компьютере пользователя с помощью SQL server


Здравствуйте, эксперты..

Я разрабатываю приложение базы данных на языке C#, в котором пользователи могут связываться с SQLServer 2008 (установленным на сервере, выделенном для SQLServer 2008) по небольшой локальной сети. Пользователи отправляют и извлекают свои данные из базы данных обычным способом. Задачи некоторых пользователей зависят от некоторых данных, которые должны быть введены другими пользователями. Итак, мой вопрос таков:
Когда пользователи отправляют свои введенные данные в базу данных SQL, есть ли способ сделать так, чтобы сама база данных SQL автоматически отправляла обновления тем пользователям, которые должны знать эту информацию?
Например, когда пользователь1 вводит новые данные клиента и отправляет эти данные в базу данных SQL, таким образом сама база данных SQL автоматически отправляет обновления на компьютеры user4, user6, user10 (только подразумеваемые пользователи)..
Возможно ли это? и каким образом?
Спасибо за помощь..

Что я уже пробовал:

Правда, я не знаю, как это сделать..

Richard Deeming

NB: Поддержка SQL 2008 и 2008 R2 завершилась в июле 2014 года. Они будут продолжать работать, но вы не получите никаких исправлений ошибок или обновлений безопасности. Вы также не сможете установить их на современную серверную ОС, поэтому вам также не будет хватать исправлений безопасности для вашего сервера.

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

5 Ответов

Рейтинг:
2

Gerry Schmitz

Прежде чем выяснять "как", вам нужно выяснить, "как часто" и "что" именно эти "пользователи" должны "видеть".

Только тогда вы можете начать думать о технологиях "толкай или тяни", если вообще можете.


Рейтинг:
2

RmcbainTheThird

Если бы это был я, я бы вел список тех, кто должен быть уведомлен и о каких обновлениях они должны быть осведомлены, и в методе c#, который обновляет БД, я бы сгенерировал и отправил туда электронное письмо. Я бы не стал пытаться сделать это в SQL server.


Рейтинг:
15

AFell2

I would agree with RmcbainTheThird. This sounds more of a job for messaging middleware. Sure, the Sql Server is involved by storing the data, but it really doesn't have the tools to send notifications to other users on other computers without a lot more work. But put up an ASP.NET MVC web app that ties in to the database, your users can retrieve their data from the web app (much safer for your data than SSMS) and you can push notifications of the state changes in the database to users as they log in to the app. Tie this together with Slack integration or email relay and you can communicate directly with the user regardless of their location or device.


Рейтинг:
1

Mohamma_rez

Большое спасибо за ваши ответы, друзья. Наиболее близким к исполнению является решение, представленное AFell2, хотя оно несколько сложное и требует большой работы..
Еще раз большое вам спасибо..


Рейтинг:
0

DaveAuld

Я думаю, вы захотите начать с SQL-триггеров......
Учебник по триггерам SQL Server[^]

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


Benktesh Sharma

Как упоминалось выше, триггер может быть хранимой процедурой для отправки электронной почты. Пример здесь - https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql?view=sql-server-2017