Aracılığıyla paylaş


SIRA (Transact-SQL) Değiştir

Bir sıranın özelliklerini değiştirir.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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 }
          ) [ , ]]
         [ POISON_MESSAGE_HANDLING (
          STATUS = { ON | OFF } )
         ] 
  [ ; ]

<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ı adıdır.Hayır, database_name olan sağlanan varsayılan için geçerli bir veritabanı.

  • schema_name(nesne)
    Yeni sıra ait olduğu şema addır.Hayır, schema_name olan sağlanan varsayılan için geçerli kullanıcı varsayılan şema

  • queue_name
    Değiştirilecek sıra addır.

  • Durum (sıra)
    Sıra (açık) kullanılabilir veya kullanılamaz (kapalı) olup olmadığını belirtir.Sıra kullanılamaz durumdayken hiçbir ileti sıraya eklenebilir veya sıradan kaldırıldı.

  • SAKLAMA
    Sıra saklama ayarını belirtir.SAKLAMA = on, bu sıra kullanarak gönderilen veya alınan üzerinde görüşmeler sırasındaki korunur, görüşmeler bitmiş kadar tüm iletileri.Bu sayede amacıyla Denetim iletileri saklamak ya da bir hata yoksa, karşılayan hareketleri gerçekleştirmek için oluşur

    Not

    SAKLAMA ayarlamak = on performansını azaltabilir.Bu ayar yalnızca gerektiğinde uygulama için hizmet düzey anlaşması karşılamak için kullanılmalıdır.

  • ETKİNLEŞTİRME
    Bu sırada gelen iletileri işlemek için etkinleştirilmiş saklı yordam hakkında bilgi belirtir.

  • Durum (etkinleştirme)
    Sıra saklı yordametkinleştirir olup olmadığını belirtir.Zaman durum = on, saklı yordam yordamları şu anda çalışan sayısı max_queue_readers ve ileti sırası saklı yordamlar iletilere daha hızlı geldiğinde azsa procedure_name ile belirtilen sıra başlar.Zaman durum = off, sıra saklı yordametkinleştirmez.

  • procedure_name = <yordam>
    Sıra işlenecek iletileri içeriyorsa etkinleştirmek için saklı yordam adını belirtir.Bu değer olmalıdır bir SQL Server tanımlayıcısı.etkinleştirmehakkında daha fazla bilgi için bkz: Etkinleştirme oluşuyor olduğunda anlama.

  • database_name (yordam)
    saklı yordamiçeren veritabanı adıdır.

  • schema_name (yordam)
    saklı yordamsahibi olan şema addır.

  • stored_procedure_name
    saklı yordamadıdır.

  • max_queue_readers =max_reader
    Sıra aynı anda başlayan etkinleştirme saklı yordam örnekleri sayısı üst sınırını belirtir.Değeri max_readers 0 ile 32767 arasında bir sayı olmalı.

  • EXECUTE AS
    Belirtir SQL Server veritabanı kullanıcı hesabı etkinleştirme saklı yordam çalıştırır.SQL Serversıra saklı yordametkinleştirir saat bu kullanıcının izinlerini denetlemek olması gerekir.Windows etki alanı kullanıcı için SQL Server gerekir bağlı olabilir etki alanı ve mümkün olduğunda yordamı etkinleştirilmiş belirtilen kullanıcı izinlerini veya doğrulamak etkinleştirme başarısız oluyor.İçin bir SQL Server kullanıcı, sunucu can her zaman denetleme izinleri.

  • SELF
    saklı yordam , geçerli kullanıcı olarak yürütür belirtir.(Bu SIRA alter deyimyürütme veritabanı asıl.)

  • 'user_name'
    Olarak saklı yordam yürütür kullanıcı adıdır.user_namebir geçerli olması SQL Server olarak belirtilen kullanıcı bir SQL Server tanımlayıcısı.Geçerli kullanıcı için özelliklerini Al izni olmalıdır user_name belirtilen.

  • SAHİBİ
    saklı yordam sıranın sahibi olarak yürütür belirtir.

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

  • POISON_MESSAGE_HANDLING
    zehirli ileti işleme etkin olup olmadığını belirtir.Varsayılan açık'tır.

    küme off işleme zehirli ileti sırası, sonra beş ardışık hareketi geri alma devre değil.Bu uygulama tarafından tanımlanmış sistem etme özel bir zehirli ileti için sağlar.

Açıklamalar

on dan OFF etkinleştirme durumunu değiştirme, iletileri içerdiğinde bir sıra belirtilen etkinleştirmesaklı yordamsaklı yordam etkinleştirmehemen etkinleştirir. off için etkinleştirme durumu değiştirme örnekleri saklı yordametkinleştirme dan broker durdurur ancak çalışmakta olan saklı yordam örnekleri durdurmaz.

etkinleştirmesaklı yordam eklemek için bir sıra değiştirme sıra etkinleştirme durumunu değiştirmez. Sıra içinsaklı yordam etkinleştirmedeğiştirme çalışmakta olansaklı yordam etkinleştirmekopyalarını etkilemez.

Service Brokersıra okuyucular için sıra etkinleştirme işleminin bir parçası olarak en fazla sayısını denetler.Bu nedenle, sıra sıra okuyucular en fazla sayısını artırmak için değiştirilmesini sağlar Service Broker hemensaklı yordam etkinleştirmedaha fazla örneğini başlatmak için. Sıra okuyucu en fazla sayısını azaltmak için bir sıra değiştirme çalışmakta etkinleştirme saklı yordam örnekleri etkilemez.Ancak, Service Broker saklı yordam kadarsaklı yordam etkinleştirmeörneklerinin denk altında yeni bir örnek başlatılamıyor yapılandırılmış en fazla sayı.etkinleştirme işlemi daha ayrıntılı bir açıklaması için bkz: Etkinleştirme oluşuyor olduğunda anlama.

Bir sıra kullanılamaz durumdayken Service Broker tutan hizmetler için veritabanı iletim sırasındaki sıra kullanmak için iletileriSys.transmission_queue Katalog görünümü iletim sırası görünümünü sağlar.

Al deyim ya da bir görüşme grup alma deyim kullanılamaz bir sırayı belirtiyorsa, bu deyim ile başarısız bir Transact-SQL hata.

İzinler

Sıra değiştirme için izin sahibi sıradan, üyeleri için varsayılan db_ddladmin veya db_owner sabit veritabanı rolleri ve üyeleri sysadmin sabit sunucu rolü.

Örnekler

A.Bir sıra kullanılamaz yapma

Aşağıdaki örnek oluşturur ExpenseQueue sıra kullanılamaz almak için iletileri.

ALTER QUEUE ExpenseQueue WITH STATUS = OFF ;

B.etkinleştirmesaklı yordamdeğiştirme

Aşağıdaki örnek sıra başlayan saklı yordam değiştirir.saklı yordam çalıştıran kullanıcı çalıştırır ALTER 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 ayarlar 7 saklı yordam sayısının örnekler Service Broker başladığı için bu sıra.

ALTER QUEUE ExpenseQueue WITH ACTIVATION (MAX_QUEUE_READERS = 7) ;

D.saklı yordam etkinleştirmeve execute as değiştirme hesabı

Aşağıdaki örnek saklı yordam değiştirir, Service Broker başlar.saklı yordam yürütür kullanıcı olarak SecurityAccount.

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

E.İletileri saklamak için sırasını ayarlama

Aşağıdaki örnek sıra iletileri saklamak için ayarlar.Sıranın, iletiyi içeren görüşme sona kadar bu sırayı kullanan Hizmetleri bilgisayardan veya gönderilen tüm iletileri korur.

ALTER QUEUE ExpenseQueue WITH RETENTION = ON ;

F.etkinleştirme bir sırasından kaldırma

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

ALTER QUEUE ExpenseQueue WITH ACTIVATION (DROP) ;