Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
SqlCommand можно настроить на генерацию уведомления об изменении данных после их получения с сервера, и в случае повторного выполнения запроса результирующий набор будет отличаться. Это полезно для сценариев, в которых необходимо использовать пользовательские очереди уведомлений на сервере, или если не требуется поддерживать активные объекты.
Создание запроса на уведомление
Объект SqlNotificationRequest можно использовать для создания запроса на уведомление путем привязки его к объекту SqlCommand. Объект SqlNotificationRequest больше не понадобится после создания запроса. Вы можете запросить очередь для любых уведомлений и ответить соответствующим образом. Уведомления могут возникать, даже если приложение завершает работу и впоследствии перезапускается.
Если выполняется команда со связанным уведомлением, любые изменения в исходном результирующем наборе инициируют отправку сообщения в очередь SQL Server, которая была указана в запросе уведомления.
Опрос очереди SQL Server и интерпретация сообщения зависят от конкретного приложения. Приложение отвечает за опрос очереди и реагирование на основе содержимого сообщения.
Примечание.
При использовании запросов SQL Server на уведомления с помощью SqlDependencyсоздайте свое собственное имя очереди вместо использования имени службы по умолчанию.
ДляSqlNotificationRequest не существует новых элементов безопасности на стороне клиента. Это, в первую очередь, функция сервера, и сервер создал специальные разрешения, которые необходимы пользователям, чтобы запрашивать уведомления.
Пример
В следующем фрагменте кода показано, как создать SqlNotificationRequest и связать его с SqlCommand.
// Assume connection is an open SqlConnection.
// Create a new SqlCommand object.
SqlCommand command=new SqlCommand(
"SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers", connection);
// Create a SqlNotificationRequest object.
SqlNotificationRequest notificationRequest=new SqlNotificationRequest();
notificationRequest.id="NotificationID";
notificationRequest.Service="mySSBQueue";
// Associate the notification request with the command.
command.Notification=notificationRequest;
// Execute the command.
command.ExecuteReader();
// Process the DataReader.
// You can use Transact-SQL syntax to periodically poll the
// SQL Server queue to see if you have a new message.