get konuşma group (Transact-sql)

Sonraki iletisinin alınabilmesi ve konuşma Grup mesajı içeren konuşma için kilitleri için konuşma Grup tanımlayıcısını döndürür. Konuşma Grup tanımlayıcısını, gelen iletiyi alma önce konuşma durumu bilgilerini almak için kullanılabilir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

[ WAITFOR ( ]
   GET CONVERSATION GROUP @conversation_group_id
      FROM <queue>
[ ) ] [ , TIMEOUT timeout ]
[ ; ]


<queue> ::=
{
    [ database_name . [ schema_name ] . | schema_name . ] queue_name
}

Bağımsız değişkenler

  • WAITFOR
    get konuşma group deyimi hiçbir ileti şu anda varsa, üzerinde sıra geldiğinde bir ileti için bekleyeceği süreyi belirtir.

  • @conversation\_group\_id
    Görüşme grup kimliğini saklamak için kullanılan bir değişken get konuşma group deyimi tarafından döndürülen. Değişken türü olmalıdır uniqueidentifier. Yoksa hiçbir konuşma grupları, değişken null olarak ayarlanır.

  • Kaynak
    Konuşma grubundan almak için sıra belirtir.

  • database_name
    Konuşma grubundan almak için sıra içeren veritabanı adıdır. Hayır database_namesağlanır, geçerli veritabanının varsayılan.

  • schema_name
    Konuşma grubundan almak için sıra sahibi olan şema addır. Hayır schema_namesağlanır, geçerli kullanıcı için varsayılan şema varsayılanlara.

  • queue_name
    Konuşma grubundan almak için sıra addır.

  • ZAMAN AŞIMItimeout
    Süre, üzerinde sıra geldiğinde bir ileti Service Broker bekleyeceği milisaniye cinsinden belirtir. Bu yan tümcesi yalnızca WAITFOR yan tümcesinde kullanılır. WAITFOR kullanan bir ifadesi bu yan tümcesi içermiyorsa veya timeout-1 ise bekleme süresi sınırsızdır. get konuşma group zamanaşımı dolarsa, ayarlar @conversation\_group\_iddeğişkeni null.

Açıklamalar

Önemli notÖnemli

get konuşma group deyimi ilk deyimi bir toplu iş veya saklı yordam değilse, önceki deyimi bir noktalı virgül ile tamamlanmalıdır (;), Transact-SQLdeyimi Sonlandırıcı.

get konuşma group deyimi belirtilen sıra kullanılamıyorsa, deyimi ile başarısız bir Transact-SQLhata.

Bu deyimi burada aşağıdakilerin tümü doğruysa Sonraki Görüşme grup döndürür:

  • Konuşma grubu başarıyla kilitlenebilir.

  • Konuşma grubu iletileri sırada kullanılabilir vardır.

  • Konuşma grubu, daha önce listelenen ölçüte uyan tüm konuşma gruplar en yüksek öncelik düzeyi vardır. Herhangi bir konuşma grubunun bir üyesidir ve iletileri sıraya atanan en yüksek öncelikli bir görüşme Grup öncelik düzeyidir.

get konuşma group art arda gelen çağrıları aynı işlem içinde birden fazla görüşme Grup kilidi. Hiçbir konuşma grubu varsa, deyimi konuşma Grup tanımlayıcısını null döndürüyor.

WAITFOR yan tümcesi belirtildiğinde, deyimi belirtilen zaman aşımı veya konuşma Grup kurulana kadar bekler. Açıklama bekliyor ise sıra kesilirse, deyimi hemen bir hata döndürür.

get konuşma group, kullanıcı tanımlı bir işlev geçerli değil.

İzinler

Sıradan bir konuşma Grup tanımlayıcısını elde etmek için geçerli kullanıcı üzerinde sıraya Al izni olmalıdır.

Örnekler

A.Süresiz olarak bekleyen bir görüşme Grup alma

Aşağıdaki örnek kümeleri @conversation\_group\_idiçin sonraki kullanılabilir ileti konuşma Grup tanımlayıcısını ExpenseQueue. İleti kullanılabilir komut bekler.

DECLARE @conversation_group_id UNIQUEIDENTIFIER ;

WAITFOR (
 GET CONVERSATION GROUP @conversation_group_id
     FROM ExpenseQueue
) ;

DECLARE @conversation_group_id UNIQUEIDENTIFIER ;

WAITFOR (
 GET CONVERSATION GROUP @conversation_group_id
     FROM ExpenseQueue
) ;

B.Bir dakika bekleyen bir görüşme Grup alma

Aşağıdaki örnek kümeleri @conversation\_group\_idiçin sonraki kullanılabilir ileti konuşma Grup tanımlayıcısını ExpenseQueue. İleti bir dakika içinde kullanılabilir hale gelirse, get konuşma group değeri değiştirmeden döndüren @conversation\_group\_id.

DECLARE @conversation_group_id UNIQUEIDENTIFIER

WAITFOR (
    GET CONVERSATION GROUP @conversation_group_id 
    FROM ExpenseQueue ),
TIMEOUT 60000 ;

DECLARE @conversation_group_id UNIQUEIDENTIFIER

WAITFOR (
    GET CONVERSATION GROUP @conversation_group_id 
    FROM ExpenseQueue ),
TIMEOUT 60000 ;

C.Hemen dönen bir görüşme Grup alma

Aşağıdaki örnek kümeleri @conversation\_group\_idiçin sonraki kullanılabilir ileti konuşma Grup tanımlayıcısını ExpenseQueue. İleti yok yoksa GET CONVERSATION GROUPhemen değiştirmeden döndüren @conversation\_group\_id.

DECLARE @conversation_group_id UNIQUEIDENTIFIER ;

GET CONVERSATION GROUP @conversation_group_id
FROM AdventureWorks.dbo.ExpenseQueue ;

DECLARE @conversation_group_id UNIQUEIDENTIFIER ;

GET CONVERSATION GROUP @conversation_group_id
FROM AdventureWorks.dbo.ExpenseQueue ;

Ayrıca bkz.

Başvuru

BEGIN DIALOG konuşma (Transact-sql)

move konuşma (Transact-sql)