Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği
Bir sonraki mesaj için konuşma grubu tanımlayıcısını döndürür ve mesajı içeren konuşma için konuşma grubunu kilitler. Konuşma grubu tanımlayıcısı, mesajın kendisi alınmadan önce konuşma durumu bilgisini almak için kullanılabilir.
Transact-SQL söz dizimi kuralları
Syntax
[ WAITFOR ( ]
GET CONVERSATION GROUP @conversation_group_id
FROM <queue>
[ ) ] [ , TIMEOUT timeout ]
[ ; ]
<queue> ::=
{ database_name.schema_name.queue_name | schema_name.queue_name | queue_name }
Arguments
WAITFOR
Şu anda hiç mesaj yoksa, ilanın GET CONVERSATION GROUP , kuyruk üzerinde bir mesaj gelmesini beklediğini belirtir.
@conversation_group_id
Döndürülen ifade tarafından döndürülen konuşma grubu kimliğini GET CONVERSATION GROUP depolamak için kullanılan bir değişkendir. Değişken benzersiz tanımlayıcı türünde olmalıdır. Eğer mevcut konuşma grupları yoksa, değişken NULL olarak ayarlanır.
FROM
Konuşma grubunun hangi kuyruğu alacağını belirtir.
database_name
Konuşma grubunu almak için kuyruğu içeren veritabanının adıdır.
database_name sağlanmadığında, varsayılan olarak mevcut veritabanına geçer.
schema_name
Konuşma grubunu almak için kuyruğu alan şemanın adıdır.
schema_name sağlanmadığında, mevcut kullanıcı için varsayılan şemaya geçer.
queue_name
Konuşma grubunu almak için kuyruğun adı bu.
MOLA VERME
Service Broker'ın kuyruğa bir mesaj gelmesini beklediği süreyi milisaniyeler cinsinden belirtir. Bu madde yalnızca WAITFOR maddesiyle birlikte kullanılabilir. WAITFOR kullanan bir ifade bu maddeyi içermiyorsa veya zaman aşımı -1 ise, bekleme süresi sınırsızdır. Zaman aşımı dönerse, GET CONVERSATION GROUP@conversation_group_id değişkeni NULL olarak ayar.
Remarks
Important
Eğer bu ifade GET CONVERSATION GROUP bir toplu veya depolanmış prosedürdeki ilk ifade değilse, önceki ime noktalı virgül (;) ile sonlandırılmalıdır; bu da Transact-SQL ifadeyi sonlandırıcıdır.
Eğer ifadede GET CONVERSATION GROUP belirtilen kuyruk kullanılamazsa, ibildirim Transact-SQL hatasıyla başarısız olur.
Bu ifade, aşağıdakilerin hepsinin doğru olduğu bir sonraki konuşma grubunu geri getirir:
Sohbet grubu başarılı bir şekilde kilitlenebilir.
Konuşma grubunun kuyruğunda mesajlar mevcuttur.
Konuşma grubu, daha önce belirtilen kriterleri karşılayan tüm konuşma grupları arasında en yüksek öncelik seviyesine sahiptir. Bir konuşma grubunun öncelik seviyesi, grup üyesi olan ve kuyrukta mesajları olan herhangi bir konuşmaya atanan en yüksek öncelik seviyesidir.
Aynı işlem içinde ardışık aramalar GET CONVERSATION GROUP birden fazla konuşma grubunu kilitleyebilir. Eğer herhangi bir konuşma grubu mevcut değilse, ifade NULL'u konuşma grubu tanımlayıcısı olarak döndürür.
WAITFOR maddesi belirtildiğinde, ifade belirtilen zaman aşımına veya bir sohbet grubu bulunana kadar bekler. Eğer ifade beklerken kuyruk düşürülürse, ifade hemen hata döndürür.
GET CONVERSATION GROUP kullanıcı tanımlı bir fonksiyonda geçerli değildir.
Permissions
Bir kuyruktan konuşma grubu tanımlayıcısı almak için mevcut kullanıcının kuyruk üzerinde iznine sahip RECEIVE olması gerekir.
Examples
A. Bir sohbet grubu kurmak, sonsuza kadar beklemek
Aşağıdaki örnek @conversation_group_id , bir sonraki mevcut mesaj için konuşma grubu tanımlayıcısını gösterir ExpenseQueue. Komut, bir mesaj kullanılabilir olana kadar bekler.
DECLARE @conversation_group_id UNIQUEIDENTIFIER ;
WAITFOR (
GET CONVERSATION GROUP @conversation_group_id
FROM ExpenseQueue
) ;
B. Bir sohbet grubu kurmak, bir dakika beklemek
Aşağıdaki örnek @conversation_group_id , bir sonraki mevcut mesaj için konuşma grubu tanımlayıcısını gösterir ExpenseQueue. Bir dakika içinde mesaj mevcut olmazsa, GET CONVERSATION GROUP değerini değiştirmeden @conversation_group_idgeri döner.
DECLARE @conversation_group_id UNIQUEIDENTIFIER
WAITFOR (
GET CONVERSATION GROUP @conversation_group_id
FROM ExpenseQueue ),
TIMEOUT 60000 ;
C. Bir sohbet grubu kurmak, hemen geri dönmek
Aşağıdaki örnek @conversation_group_id , bir sonraki mevcut mesaj için konuşma grubu tanımlayıcısını gösterir ExpenseQueue. Mesaj mevcut değilse, GET CONVERSATION GROUP hemen değişmeden @conversation_group_idgeri döner.
DECLARE @conversation_group_id UNIQUEIDENTIFIER ;
GET CONVERSATION GROUP @conversation_group_id
FROM AdventureWorks.dbo.ExpenseQueue ;
Ayrıca Bkz.
BEGIN DIALOG CONVERSATION (Transact-SQL)
MOVE CONVERSATION (Transact-SQL)