Aracılığıyla paylaş


ALTER QUEUE (Transact-SQL)

Sıra özelliklerini değiştirir.

Topic link iconTransact-SQL sözdizimi kuralları

ALTER QUEUE <object> WITH
   [ STATUS = { ON | OFF } [ , ] ]
   [ RETENTION = { ON | OFF } [ , ] ]
   [ ACTIVATION (
       { [ STATUS = { ON | OFF } [ , ] ] 
         [ PROCEDURE_NAME = <procedure> [ , ] ]
         [ MAX_QUEUE_READERS = max_readers [ , ] ]
         [ EXECUTE AS { SELF | 'user_name'  | OWNER } ]
       |  DROP }
          ) ] 
[ ; ]

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

<procedure> ::=
{
    [ database_name. [ schema_name ] . | schema_name. ]
        stored_procedure_name
}

Bağımsız değişkenler

  • database_name(nesne)
    Değiştirilecek sıra içeren veritabanının adıdır.Zaman yokdatabase_namesağlanan bu varsayılan olarak geçerli veritabanına al. değil

  • schema_name(nesne)
    Yeni sıra ait olduğu şema adıdır.Zaman yokschema_nameolduğu sürece bu varsayılan olarak varsayılan şema için geçerli.

  • queue_name
    Değiştirilmesi sırasının adı.

  • STATUS (sıra)
    Sıra (ON) kullanılabilir veya kullanılamaz (kapalı) olup olmadığını belirtir.Sıra kullanılamaz duruma geldiğinde, ileti sıraya eklenir veya sıradan kaldırıldı.

  • SAKLAMA
    Sıra saklama ayarını belirtir.SAKLAMA = ON, tüm iletiler bu sırada kullanarak gönderilen veya alınan üzerinde görüşmeler görüşmeler bitmiş kadar sıraya korunur.Bu sayede korumak amacıyla Denetim iletileri ya da karşılayan hareketleri bir hata durumunda gerçekleştirilecek oluşur

    Not

    KORUMA ayarını = ON performansını azaltır.Bu ayar yalnızca gerekiyorsa, uygulamanın hizmet düzey anlaşması karşılamak için kullanılır.

  • ETKİNLEŞTİRME
    İlgili bilgileri belirtir saklı yordam bu sırada gelen iletileri işlemek için etkinleştirildi.

  • STATUS (etkinleştirme)
    Sıra saklı yordam etkinleştirir olup olmadığını belirtir.Durum = ON, saklı yordam, çalışmakta olan işlemleri sayısı daha az MAX_QUEUE_READERS ve saklı yordamlar iletilere çok hızlı sıraya ileti geldiğinde, PROCEDURE_NAME ile belirtilen sıra başlar.Durum = OFF, sıra saklı yordam etkinleştirmez.

  • PROCEDURE_NAME = <yordam>
    Sıra işlem iletilerini içeren etkinleştirmek için saklı yordam adını belirtir.Bu değer olması gereken birSQL Servertanımlayıcı.Etkinleştirme, daha fazla bilgi için bkz:Etkinleştirme oluşuyor When anlama.

  • database_name (yordam)
    Saklı yordam içeren veritabanının adıdır.

  • schema_name (yordam)
    Saklı yordam sahip olan şemayı adıdır.

  • stored_procedure_name
    Saklı yordam adı'dır.

  • MAX_QUEUE_READERS = max_readers
    Etkinleştirme örneklerinin sayısı üst sınırını belirtir saklı yordam sıra aynı anda başlayacak.Değerimax_readers0 ile 32767 arasında bir sayı olmalıdır.

  • yürütmek İLERLEDİKÇE
    Specifies the SQL Server database user account under which the activation stored procedure runs.SQL Server must be able to check the permissions for this user at the time that the queue activates the stored procedure.Windows etki alanı kullanıcısı,SQL Servergereken bağlı etki alanı ve için doğrulama yordamı etkin olduğunda belirtilen kullanıcı izinlerini veya etkinleştirme başarısız olur.İçin birSQL Serverkullanıcı, sunucu olabilir her zaman denetleme izinleri.

  • SELF (KENDİ)
    Saklı yordam, geçerli kullanıcı olarak çalışacağını belirtir.(Bu QUEUE ALTER deyim yürütme veritabanını patron.)

  • 'user_name'
    Is the name of the user that the stored procedure executes as.user_name must be a valid SQL Server user specified as a SQL Server identifier.Geçerli kullanıcının özelliklerini al izninizin olması gerekiruser_namebelirtilen.

  • Sahip
    Saklı yordam sıranın sahibi olarak çalışacağını belirtir.

  • BIRAK
    Sıra ile ilişkilendirilmiş tüm etkinleştirme bilgileri siler.

Remarks

Bir sırayı, belirtilen bir etkinleştirme ile saklı yordam ON dan OFF etkinleştirme durumunu değiştirme, iletileri içeren etkinleştirme hemen etkinleştirir saklı yordam.Etkinleştirme durumu için OFF ON değiştirme etkinleştirme saklı yordam örnekleri arasında öğe durdurur, ancak saklı yordam çalışmakta olan örneği durdurur.

Bir etkinleştirme eklemek için bir sıra değiştirme saklı yordam sıra etkinleştirme durumunu değiştirmez.Sıraya depolanan etkinleştirme yordamı değiştirme çalışmakta olan örneği etkinleştirme saklı yordamını etkilemez.

Service Broker en yüksek sıra okuyucular etkinleştirme işleminin bir parçası olarak bir sıra için denetler.Nedenle, sıra sıra okuyucu sayısının artırmak için değiştirilmesini sağlarService Brokerdaha fazla kopyasını etkinleştirme hemen başlatmak için saklı yordam.Sıra sıra okuyucular en fazla sayısını azaltmak için değiştirme çalışmakta etkinleştirme saklı yordam örnekleri etkilemez.Bununla birlikte,Service Brokersaklı yordam yer altında örnekleri için etkinleştirme sayısı kadar saklı yordam yeni örnek başlatılamıyor yapılandırılmış en büyük sayısı.Etkinleştirme işlemi, daha ayrıntılı bir açıklaması için bkz:Etkinleştirme oluşuyor When anlama.

Bir sıra kullanılamıyorsaService Brokerileti hizmetleri kullanan veritabanını. iletim sırası sırada tutarThe sys.transmission_queue catalog view provides a view of the transmission queue.

Al deyim veya bir GET konuşma GROUP deyim kullanılamaz bir sıra belirtiyorsa, bu deyim ile başarısız birTransact-SQLhatası.

İzinler

Bir sıra değiştirme işlemi için izni varsayılan üyesi sıranın sahibidb_ddladmindb_owner ya da veritabanı rolleri sabit ve sabit sunucu rolü. sysadmin üyeleri

Örnekler

C.Bir sıra olarak kullanılamaz yapma

Yapan aşağıdaki örnekExpenseQueuesıra kullanılamıyorsa aldığınız iletiler.

ALTER QUEUE ExpenseQueue WITH STATUS = OFF ;

b.Etkinleştirme değiştirme saklı yordam

Aşağıdaki örnek sıra başlar saklı yordam değiştirir.saklı yordam Çalıştıran kullanıcı olarak çalıştırırALTER QUEUEdeyim.

ALTER QUEUE ExpenseQueue
    WITH ACTIVATION (
        PROCEDURE_NAME = new_stored_proc,
        EXECUTE AS SELF) ;

c.Sıra okuyucu sayısını değiştirme

Aşağıdaki örnek ayarlar7saklı yordam en örneklerService Brokerbaşlayan bu sıra.

ALTER QUEUE ExpenseQueue WITH ACTIVATION (MAX_QUEUE_READERS = 7) ;

d.Etkinleştirme değiştirme depolanmış yordam ve yürütmek AS hesabı

Saklı yordam aşağıdaki örnekte değiştirir,Service Brokerbaşlar.Saklı yordam çalıştırılır kullanıcıSecurityAccount.

ALTER QUEUE ExpenseQueue
    WITH ACTIVATION (
        PROCEDURE_NAME = AdventureWorks.dbo.new_stored_proc ,
        EXECUTE AS 'SecurityAccount') ;

e.Sıra iletileri saklamak için ayarlama

Aşağıdaki örnek Sıra iletileri saklamak için ayarlar.Sırayı veya iletiyi içeren konuşma sona kadar bu sırayı kullanan hizmetlerinden gönderilen tüm iletilerin korur.

ALTER QUEUE ExpenseQueue WITH RETENTION = ON ;

f.Sıradan etkinleştirme kaldırma

Aşağıdaki örnek, sıradaki tüm etkinleştirme bilgilerini kaldırır.

ALTER QUEUE ExpenseQueue WITH ACTIVATION (DROP) ;