Udostępnij przez


Tworzenie kwerendy powiadomień subskrypcji

Subskrybowanie powiadomienie polega na tworzeniu polecenia, dołączanie żądania powiadomienie do polecenia i następnie wykonywanie polecenia.Query notification subscriptions must be created from a database access interface.Transact-SQL does not provide a mechanism for creating query notification subscriptions.

Aparat baz danych Niezwłocznie rejestruje powiadomienie dotyczące Transact-SQL instrukcja w polecenia.Dla każdego instrukcja nie spełnia wymagania dotyczące powiadomienie kwerendy, Aparat baz danych natychmiast tworzy powiadomienie.Sprawozdania, które spełniają wymagania utworzono subskrypcja.Należy uważać, aby uniknąć wysyłania polecenia do serwera, który zawiera zarówno sprawozdań, które spełniają wymagania i sprawozdań, które nie spełniają zarówno wymogi.

Ostrzeżenie

Transact-SQL nie umożliwiają subskrybować powiadomienia.Dostępu do danych CLR klas w SQL Server nie obsługują kwerendy powiadomień.

Każda subskrypcja powiadomienie kwerendy daje jednego zdarzenie powiadamiania.Po notyfikacji, SQL Server usuwa subskrypcja powiadomienie.Dlatego wniosek powinien zostać poinformowany ponownie musi zażądać nowego powiadomienie poleceniem pobiera zmienionych danych.

Żądanie powiadomienie kwerendy nie jest transakcyjna.Podczas żądania powiadomienie na polecenia, Aparat baz danych rejestruje powiadomienie, czy po zatwierdzeniu transakcji, które zawiera polecenie lub toczy się wstecz.

Subskrypcje powiadomień kwerendy są przechowywane w bazie danych, gdy kwerenda jest wykonywana.dynamiczny widok zarządzania Sys.dm_qn_subscriptions przedstawia informacje na tej kwerendzie subskrypcje powiadomienie, które są aktualnie aktywne.Widok katalogu sys.internal_tables pokazuje ilość miejsca używanego przez subskrypcje powiadomienie kwerendy, które są aktualnie aktywne.

Wybór strategii subskrypcji powiadomień przy użyciu SqlClient zarządzanego dostawcy

Żądanie subskrypcja powiadomienie na dwa sposoby.A Zależność zapewnia wysoki -poziom interfejsu powiadomień kwerendy.Aplikacja po prostu tworzy instancję klasy zależność (na przykład SqlDependency w ADO.NET), rejestruje obsługi odbierania powiadomienie zdarzenie i dodaje obiekt zależności do polecenia query.Obiekt zależności wywołuje program obsługi po wystąpieniu powiadomienie.

A żądania powiadomienie udostępnia interfejs niższego poziom, bardziej elastyczne powiadomienie kwerendy.Zależność, takich jak aplikacja tworzy żądanie powiadomienie (na przykład wystąpienie SqlNotificationRequest w ADO.NET) i dołącza żądania powiadomienie do polecenia query.W odróżnieniu od zależność żądania powiadomienie po prostu żądania subskrypcja powiadomienie kwerendy.Samej aplikacji należy pobierać wiadomości powiadomienie z bazy danych, przetwarzanie wiadomości i odpowiednio reagować.Zapewnia większą elastyczność projektowania aplikacji, ale wymaga nieco więcej wysiłku.Żądanie powiadomienie jest odpowiedni dla aplikacji wymagających elastyczności w obsłudze powiadomienie.Na przykład aplikacja działająca na podstawie harmonogramu nie można używać zależność, ponieważ obiekt zależności jest niszczony, kiedy kończy pracę aplikacji.Z powiadomienie wniosek, jednak aplikacji można sprawdzić kolejkę uruchamiania i odświeżania pamięci podręcznej danych lokalnych, jeśli to konieczne.

Aplikacje przy zależność aplikacji rejestruje powiadomienie subskrypcja jest również aplikację, która będzie przetwarzać powiadomienie, gdy aplikacja pozostanie uruchomiony stale i podczas połączenia z bazą danych jest dostępny podczas pracy aplikacji.Dla aplikacji, które spełniają te wymagania zależności zapewniają łatwy używanie powiadomień kwerendy.Aplikacje przy żądania powiadomienie aplikacji nie można użyć zależności.W takim przypadek projektantów aplikacji należy zaprojektować strategii do odbierania i przetwarzania wiadomości sens dla aplikacji.

Przy użyciu protokołu SOAP powiadomień

Macierzysta obsługa protokołu HTTP SOAP obejmuje obsługę powiadomień kwerendy.Żądanie protokołu SOAP zawiera <notificationRequest> powiadomienia tworzy nagłówek subskrypcja dla kwerendy.Tak jak w przypadku SqlNotificationRequest, żądającego muszą pobierać wiadomości powiadomienie z bazy danych, przetwarzanie wiadomości i odpowiednio reagować.To podejście jest nadają dla aplikacji, usług sieci Web, ponieważ nie wymaga stałego połączenia do SQL Server.

Przy użyciu programu SQL Server Native Client dla powiadomień

Aplikacje używające SQL Server macierzystego klienta dostawca OLE DB lub sterownik ODBC mogą także przesyłać żądania powiadomienie.Informacje dotyczące używania powiadomień kwerendy z SQL Server aplikacje klienckie macierzystych, zobacz Praca z powiadomień kwerendy.