Udostępnij za pośrednictwem


Tworzenie kwerendy powiadomień

Funkcji powiadomień kwerendy bazuje na mechanizmy wykrywania zmian, Aparat baz danych używa się do utrzymania Widoki indeksowane.Wymagania i ograniczenia dla instrukcji kwerendy dla powiadomienie są podobne do wymagań i ograniczeń dla indeksowany widok.

Określanie opcji ustawień

Podczas wykonywania instrukcja SELECT obszarze żądanie powiadomienie przesyła żądanie połączenia musi mieć opcji połączenia zestaw w następujący sposób:

  • NA ANSI_NULLS

  • NA SPOWODOWAŁYBY

  • NA ANSI_WARNINGS

  • NA CONCAT_NULL_YIELDS_NULL

  • QUOTED_IDENTIFIER ON

  • NUMERIC_ROUNDABORT, WYŁĄCZANIE

  • NA ARITHABORT

Ostrzeżenie

zestaw ANSI_WARNINGS ON niejawnie ustawia ARITHABORT on, gdy poziom zgodności bazy danych jest ustawiony na 90.Jeśli poziom zgodności bazy danych jest zestaw 80 lub wcześniej, opcja ARITHABORT musi być jawnie zestaw on.

Instrukcja musi działać pod READ_UNCOMMITTED lub MIGAWKI poziomów izolacji.

Jeśli te opcje lub poziom izolacji nie jest zestaw odpowiednio, powiadomienie jest uruchamiany natychmiast po wykonaniu instrukcja SELECT.Gdy zgłoszenie jest aktywne, połączenia, które wydaje polecenie, powodujący, że powiadomienie na ogień musi mieć również zestaw opcje zestaw jak pokazano.W przeciwnym razie polecenie zawiedzie, z Transact-SQL błąd.

Instrukcja znajdujące się w procedurze przechowywanej, musi być opcji ANSI_NULLS i QUOTED_IDENTIFIER zestaw podczas tworzenia procedura składowana.Aby uzyskać więcej informacji, zobacz USTAWIENIA ANSI_NULLS (Transact-SQL) i ZESTAW QUOTED_IDENTIFIER (Transact-SQL).

Instrukcje dla powiadomień

Ogólnie rzecz biorąc można zażądać powiadomienie dla dowolnej kwerendy, używany do tworzenia indeksowany widok.Możesz zestaw w górę powiadomienia dla następujących instrukcji:

  • WYBIERZ

    Wymagania i ograniczenia dotyczące wybierz zobacz "Obsługiwane sprawozdań wybierz" poniżej.Więcej informacji na temat instrukcja SELECT, zobacz SELECT (Transact-SQL).

  • WYKONANIE

    W takim przypadek SQL Server rejestruje powiadomienie polecenia wykonywane zamiast instrukcja EXECUTE, sam.Polecenie musi spełniać wymagania i ograniczenia dotyczące instrukcja SELECT.Więcej informacji na temat instrukcja EXECUTE, zobacz EXECUTE (Transact-SQL).

Gdy polecenie rejestruje powiadomienie zawiera więcej niż jedną instrukcję Aparat baz danych tworzy powiadomienia każdej instrukcja w partia.

Obsługiwane instrukcji SELECT

Kwerendy powiadomień są obsługiwane dla instrukcji SELECT, które spełniają następujące wymagania:

  • Przewidywane kolumny w instrukcja SELECT musi wyraźnie stwierdzone, a tabela nazwy musi być kwalifikowany z dwóch części nazwy.Zwróć uwagę, to oznacza, że wszystkie tabele w instrukcja musi być w tej samej bazy danych.

  • Instrukcja nie może używać gwiazdki (*) lub nazwa_tabeli. * składni, aby określić kolumny.

  • Instrukcja nie może używać bez nazwy kolumnas lub duplikat kolumna nazwy.

  • Instrukcja musi odwoływać się tabela bazowa.

  • Instrukcja nie może odwołać tabel z kolumny obliczane.

  • Przewidywane kolumny w instrukcja SELECT nie może zawierać wartość zagregowana wyrażeń, chyba że instrukcja używane wyrażenie Grupuj według.Gdy grupa przez wyrażenie jest podana, wybierz Lista może zawierać funkcje agregujące, COUNT_BIG() lub SUM().Jednak SUM() nie może być określone dla kolumna dopuszczającej wartości null.Instrukcja nie może określić HAVING, CUBE lub ROLLUP.

  • Przewidywane kolumna w instrukcja SELECT, który jest używany jako proste wyrażenie nie umieszcza się więcej niż raz.

  • Instrukcja nie może zawierać operatory PRZEGUBU lub UNPIVOT.

  • Instrukcja nie może zawierać operatory Unii, PRZECIĘCIE lub oprócz.

  • Instrukcja nie może odwołania widoku.

  • Instrukcja nie może zawierać żadnego z następujących czynności: DISTINCT, komputerowe lub COMPUTE BY lub INTO.

  • Instrukcja nie może odwołać zmienne globalne serwera (@@nazwa_zmiennej).

  • Instrukcja nie musi odwoływać się tabele pochodnych, tabel tymczasowych lub zmienne Tabela.

  • Instrukcja nie musi odwoływać tabel lub widoków z innych baz danych lub serwerów.

  • Instrukcja nie może zawierać podkwerend sprzężenia zewnętrzne lub samosprzężeniach.

  • Instrukcja nie może odwołać dużych obiektów: text, ntext, and image.

  • Instrukcja nie może używać predykaty pełnego tekstu ZAWIERA lub FREETEXT.

  • Instrukcja nie może używać funkcji zestawu zestaw wierszy, w tym OPENROWSET i OTWÓRZKWERENDĘ.

  • Instrukcja nie wolno używać następujących wartość zagregowana funkcje: Średnia, COUNT(*), MAX, MIN, STDEV, STDEVP, VAR lub VARP.

  • Instrukcja nie może używać dowolnego rodzaju funkcji, w tym funkcji klasyfikacji i windowing.

  • Instrukcja nie może zawierać agregatów zdefiniowane przez użytkownika.

  • Instrukcja nie musi odwoływać się tabele systemowe lub widoków, łącznie z wykazu widoków i dynamicznego zarządzania.

  • Instrukcja nie może zawierać do PRZEGLĄDANIA informacji.

  • Instrukcja nie może odwołać kolejki.

  • Instrukcja nie może zawierać instrukcje warunkowe, których nie można zmienić i nie może zwrócić wyniki (na przykład gdy 1 = 0).

  • Instrukcja nie można określić READPAST Wskazówka blokady.

  • Instrukcja nie może odwołać dowolnej Service Broker kolejki.

  • Instrukcja nie może odwołać synonimy.

  • Instrukcja nie może mieć porównania lub wyrażenie w oparciu o dane podwójne i rzeczywistym typów.

  • Nie należy używać instrukcja góry wyrażenie.

Instancje i procedur przechowywanych

Jeśli się żądanie subskrypcja dla programu wsadowego lub procedura składowana zostanie zgłoszone żądanie subskrypcja oddzielne dla każdego instrukcja wykonywane w ramach programu wsadowego lub procedura składowana.

WYKONYWANIE instrukcji nie zarejestruje powiadomienie, ale będzie przepływ żądania powiadomienie wykonane polecenie.Jeśli jest to partia, kontekście zostaną zastosowane do wykonanej instrukcji i obowiązują te same zasady opisane powyżej.

Zduplikowane subskrypcji

Przesyłanie duplikat przyczyn active subskrypcja określonej istniejącej subskrypcja odnowienia, używając nowej czas-określoną wartość.Zduplikowane subskrypcja jest taki, który spełnia następujące warunki:

  • Kwerenda jest przedkładany przez samego użytkownika w tym samym kontekście bazy danych.

  • Używane są tego samego szablonu, wartości parametrów, identyfikator powiadomienie i lokalizacji dostarczania.

Oznacza to, że jeśli zgłoszenie jest wymagane dla kwerend identyczne, tylko jeden powiadomienie jest wysyłane.Odnosi się to do kwerendy zduplikowane w partia lub kwerendy w procedura składowana , nazywany jest wiele razy.

Zobacz także

Odwołanie

Koncepcje