SIRA (Transact-SQL) Değiştir
Bir sıranın özelliklerini değiştirir.
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 şemaqueue_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şurNot
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) ;
Ayrıca bkz.