Pobierz KONWERSACJĘ grupy (Transact-SQL)
Zwraca identyfikator grupa konwersacji do następnej wiadomości ma być odbierany i blokuje grupa konwersacji konwersacji, który zawiera wiadomość.Identyfikator grupa konwersacji można pobrać informacji o stanie konwersacji przed pobraniem samej wiadomości.
Składnia
[ WAITFOR ( ]
GET CONVERSATION GROUP @conversation_group_id
FROM <queue>
[ ) ] [ , TIMEOUT timeout ]
[ ; ]
<queue> ::=
{
[ database_name . [ schema_name ] . | schema_name . ] queue_name
}
Argumenty
WAITFOR
Określa, że pobieranie grupy KONWERSACJI instrukcja czeka na wiadomości przychodzące do kolejki, jeśli wiadomości nie są obecne.@conversation_group_id
Zmienna używane do przechowywania Identyfikatora grupa konwersacji zwraca uzyskać grupy KONWERSACJI instrukcja.Zmienna musi być typu uniqueidentifier.Jeśli grupy konwersacji nie są dostępne, zmienna jest zestaw na NULL.Z
Określa kolejkę, aby uzyskać grupa konwersacji z.database_name
Jest to nazwa bazy danych, która zawiera kolejki, aby uzyskać grupa konwersacji z.Gdy nie database_name podano wartości domyślne do bieżącej bazy danych.schema_name
Jest to nazwa schematu, który jest właścicielem kolejki, aby uzyskać grupa konwersacji z.Gdy nie schema_name podano domyślne ustawienia do domyślnego schematu dla bieżącego użytkownika.queue_name
Jest to nazwa kolejki, aby uzyskać grupa konwersacji z.LIMIT CZASUtimeout
Określa długość czas(w milisekundach), które Service Broker oczekuje na wiadomości przychodzące do kolejki.Ta klauzula może stanowić jedynie z WAITFOR klauzula.Jeśli używa WAITFOR instrukcja nie zawiera tej klauzula lub timeout jest -1, czas oczekiwania jest nieograniczona.Jeżeli limit czasu upłynie, Pobierz KONWERSACJĘ grupy ustawia @ conversation_group_id zmiennej wartości null.
Uwagi
Ważne: |
|---|
Jeśli uzyskać grupy KONWERSACJI instrukcja nie jest pierwsza instrukcja w procedura składowana partia lub poprzednim instrukcja musi zakończone średnikiem (;), Transact-SQLinstrukcja terminator. |
Jeśli kolejka określona w instrukcja uzyskać grupy KONWERSACJI jest niedostępny, instrukcja nie powiedzie się z Transact-SQL błąd.
Ta instrukcja zwraca następnej grupa konwersacji gdzie wszystkich poniższych ma wartość true:
grupa konwersacji może być zablokowana pomyślnie.
grupa konwersacji ma wiadomości w kolejce.
grupa konwersacji ma najwyższy priorytet poziom wszystkie grupy konwersacji, które spełniają kryteria wymienione wcześniej.Priorytet poziom grupa konwersacji jest najwyższy priorytet poziom przypisanych do konwersacji, każdy element członkowski grupy i ma wiadomości w kolejce.
Kolejne wywołania do uzyskania grupy KONWERSACJI w obrębie tej samej transakcji może blokada więcej niż jednej grupa konwersacji.Jeśli nie grupa konwersacji jest dostępna, instrukcja zwraca wartość NULL jako identyfikator grupa konwersacji .
Po określeniu WAITFOR klauzula instrukcja czeka określonego limitu czasu lub do czasu udostępnienia grupa konwersacji .Kolejki jest porzucane, gdy oczekuje instrukcja , instrukcja natychmiast zwraca błąd.
Pobierz KONWERSACJĘ grupy jest nieprawidłowa w zdefiniowanej przez użytkownika funkcja.
Uprawnienia
Aby uzyskać identyfikator grupa konwersacji z kolejki, bieżący użytkownik musi mieć uprawnienie ODBIERANIE w kolejce.
Przykłady
A.Pobieranie grupa konwersacji, oczekiwanie przez czas nieokreślony
Następujący przykład zestawy @conversation_group_id identyfikator grupa konwersacji następnej wiadomości dostępne na ExpenseQueue.Polecenie czeka, aż wiadomości stają się dostępne.
DECLARE @conversation_group_id UNIQUEIDENTIFIER ;
WAITFOR (
GET CONVERSATION GROUP @conversation_group_id
FROM ExpenseQueue
) ;
B.Pobieranie grupa konwersacji, jednominutowym okresie oczekiwania
Następujący przykład zestawy @conversation_group_id identyfikator grupa konwersacji następnej wiadomości dostępne na ExpenseQueue.Jeśli wiadomość nie stają się dostępne w ciągu jednej minuty, Pobierz KONWERSACJĘ grupy zwraca bez zmiany wartości @conversation_group_id.
DECLARE @conversation_group_id UNIQUEIDENTIFIER
WAITFOR (
GET CONVERSATION GROUP @conversation_group_id
FROM ExpenseQueue ),
TIMEOUT 60000 ;
C.Pobieranie grupa konwersacji, zwracanie natychmiast
Następujący przykład zestawy @conversation_group_id identyfikator grupa konwersacji następnej wiadomości dostępne na ExpenseQueue.Jeśli wiadomość nie jest dostępna, GET CONVERSATION GROUP zwraca natychmiast bez zmieniania @conversation_group_id.
DECLARE @conversation_group_id UNIQUEIDENTIFIER ;
GET CONVERSATION GROUP @conversation_group_id
FROM AdventureWorks2008R2.dbo.ExpenseQueue ;
Zobacz także
.gif)
Ważne: