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
Yeni bir sözleşme oluşturuyor. Bir sözleşme, Hizmet Brokerı konuşmasında kullanılan mesaj türlerini tanımlar ve aynı zamanda konuşmanın hangi tarafının bu türde mesaj gönderebileceğini de belirler. Her konuşma bir sözleşmeyi takip eder. Başlatıcı hizmet, konuşma başladığında konuşma için sözleşmeyi belirler. Hedef hizmet, hedef hizmetin görüşmeleri kabul ettiği sözleşmeleri belirtir.
Transact-SQL söz dizimi kuralları
Syntax
CREATE CONTRACT contract_name
[ AUTHORIZATION owner_name ]
( { { message_type_name | [ DEFAULT ] }
SENT BY { INITIATOR | TARGET | ANY }
} [ ,...n] )
[ ; ]
Arguments
contract_name
Oluşturulacak sözleşmenin adı. Mevcut veritabanında yeni bir sözleşme oluşturulur ve maddede AUTHORIZATION belirtilen ana kişiye ait olur. Sunucu, veritabanı ve şema adları belirtilemez.
contract_name 128 karaktere kadar olabilir.
Note
contract_name için ANY anahtar kelimesini kullanan bir sözleşme oluşturma. Bir sözleşme adı için ANY CREATE BROKER PRIORITYbelirttiğinizde, öncelik tüm sözleşmeler için dikkate alınır. Bu, sadece ANY adlı bir sözleşmeyle sınırlı değildir.
AUTHORIZATION
owner_name
Sözleşmenin sahibini belirtilen veritabanı kullanıcısı veya rolü olarak ayarlar. Mevcut kullanıcı dbo veya saise, owner_name herhangi bir geçerli kullanıcının veya rolün adı olabilir. Aksi takdirde, owner_name mevcut kullanıcının adı, mevcut kullanıcının taklit iznine sahip olduğu kullanıcı adı veya mevcut kullanıcının ait olduğu bir rolün adı olmalıdır. Bu madde çıkarıldığında, sözleşme mevcut kullanıcıya aittir.
message_type_name
Sözleşmenin bir parçası olarak dahil edilecek bir mesaj türünün adı mı?
GÖNDEREN
Belirtilen mesaj türünde mesajı hangi uç noktanın gönderebileceğini belirtir. Sözleşmeler, hizmetlerin belirli konuşmalar için kullanabileceği mesajları belgeler. Her konuşmanın iki uç noktası vardır: başlatıcı uç nokta, konuşmayı başlatan hizmet ve hedef uç nokta, başlatıcının temas ettiği hizmet.
BAŞLATICI
Yalnızca konuşmayı başlatan kişinin belirtilen mesaj türünde mesaj gönderebileceğini gösterir. Bir konuşmayı başlatan hizmet, sohbetin başlatıcısı olarak adlandırılır.
HEDEF
Yalnızca konuşmanın hedefinin belirtilen mesaj türünde mesaj gönderebileceğini gösterir. Başka bir hizmet tarafından başlatılan bir konuşmayı kabul eden bir hizmet, konuşmanın hedefi olarak adlandırılır.
ANY
Bu tür mesajların hem başlatıcı hem de hedef tarafından gönderilebileceğini gösterir.
[ DEFAULT ]
Bu sözleşmenin varsayılan mesaj türündeki mesajları desteklediğini gösterir. Varsayılan olarak, tüm veritabanları adında bir mesaj DEFAULTtürü içerir. Bu mesaj türü, HIÇ doğrulama kullanmaz. Bu madde bağlamında, DEFAULT anahtar kelime değildir ve tanımlayıcı olarak sınırlandırılmalıdır. Microsoft SQL Server ayrıca mesaj türünü belirten DEFAULT bir DEFAULT sözleşme de sağlar.
Remarks
Sözleşmedeki mesaj türlerinin sırası önemli değildir. Hedef ilk mesajı aldıktan sonra, Service Broker konuşmanın her iki tarafının da o taraf için izin verilen herhangi bir mesajı herhangi bir zamanda göndermesine izin verir. Örneğin, konuşmayı başlatan kişi Adventure-Works.com/Expenses/SubmitExpense tipinde mesaj gönderebiliyorsa, Service Broker başlatıcıya görüşme sırasında herhangi sayıda SubmitExpense mesajı göndermesine izin verir.
Bir sözleşmedeki mesaj türleri ve yönleri değiştirilemez. Sözleşmeyi değiştirmek AUTHORIZATION için beyanı ALTER AUTHORIZATION kullanın.
Bir sözleşme, başlatıcının bir mesaj göndermesine izin vermelidir. Sözleşmede herhangi bir TARAFTAN GÖNDERILEN veya BAŞLATICI TARAFINDAN GÖNDERILEN en az bir mesaj türü bulunmadığında ifade CREATE CONTRACT başarısız olur.
Sözleşme ne olursa olsun, bir hizmet her zaman mesaj türlerini https://schemas.microsoft.com/SQL/ServiceBroker/DialogTimeralabilir, https://schemas.microsoft.com/SQL/ServiceBroker/Error, ve https://schemas.microsoft.com/SQL/ServiceBroker/EndDialog. Service Broker, uygulamaya sistem mesajları için bu mesaj türlerini kullanır.
Bir sözleşme geçici bir nesne olamaz. # ile başlayan sözleşme isimlerine izin verilir, ancak kalıcı nesnelerdir.
Permissions
Varsayılan olarak, db_ddladmin veya db_owner sabit veritabanı rolü üyeleri ve sistem yöneticisi sabit sunucu rolü sözleşmeler oluşturabilir.
Varsayılan olarak, sözleşmenin sahibi, db_ddladmin veya db_owner sabit veritabanı rollerinin üyeleri ve sistem yöneticisinin sabit sunucu rolünün üyeleri, bir sözleşmede REFERANS iznine sahiptir.
Ifadeyi CREATE CONTRACT çalıştıran kullanıcı, belirtilen tüm mesaj türlerinde REFERENCES iznine sahip olmalıdır.
Examples
A. Sözleşme Oluşturma
Aşağıdaki örnek, üç mesaj türüne dayalı bir masraf geri ödeme sözleşmesi oluşturur.
CREATE MESSAGE TYPE
[//Adventure-Works.com/Expenses/SubmitExpense]
VALIDATION = WELL_FORMED_XML ;
CREATE MESSAGE TYPE
[//Adventure-Works.com/Expenses/ExpenseApprovedOrDenied]
VALIDATION = WELL_FORMED_XML ;
CREATE MESSAGE TYPE
[//Adventure-Works.com/Expenses/ExpenseReimbursed]
VALIDATION= WELL_FORMED_XML ;
CREATE CONTRACT
[//Adventure-Works.com/Expenses/ExpenseSubmission]
( [//Adventure-Works.com/Expenses/SubmitExpense]
SENT BY INITIATOR,
[//Adventure-Works.com/Expenses/ExpenseApprovedOrDenied]
SENT BY TARGET,
[//Adventure-Works.com/Expenses/ExpenseReimbursed]
SENT BY TARGET
) ;