İLETİ türü (Transact-SQL) oluştur
Yeni bir ileti türüoluşturur.ileti türü adı bir ileti doğrulama ve tanımlar, Service Broker gerçekleştirdiği iletilerde olan bu adı.İki görüşme aynı ileti türlerini tanımlamalısınız.
Sözdizimi
CREATE MESSAGE TYPE message_type_name
[ AUTHORIZATION owner_name ]
[ VALIDATION = { NONE
| EMPTY
| WELL_FORMED_XML
| VALID_XML WITH SCHEMA COLLECTION
schema_collection_name
} ]
[ ; ]
Bağımsız değişkenler
message_type_name
Oluşturmak için ileti türü addır.Yeni bir ileti türü geçerli veritabanında oluşturulmuş ve YETKİLENDİRME yan tümcetümcesinde belirtilen asıl sahibi.Sunucu, veritabanı ve şema adı belirtilemez.message_type_name Olabilir en çok 128 karakter.YETKİLENDİRMEowner_name
Belirtilen veritabanı kullanıcı ya da rol sahibi ileti türü ayarlar.Geçerli kullanıcı olduğunda dbo veya sa, owner_name , herhangi bir geçerli kullanıcı veya adı olabilirrolü.Aksi takdirde, owner_name Geçerli kullanıcı adını, geçerli kullanıcı özelliklerini Al izni olan bir kullanıcının adını veya ait olduğu geçerli kullanıcı rolünün adı olmalı.Bu yan tümce atlandığında, ileti türü geçerli kullanıcıya ait.DOĞRULAMA
Belirtir nasıl Service Broker doğrulayan ileti iletiler bu tür.Varsayılan olarak bu yan tümce belirtilmemişse, doğrulama yok olur.HİÇBİRİ
Hiçbir doğrulama yapılacağını belirtir.İleti gövdesi veri içerebilir veya null olabilir.BOŞ
İleti gövdesi boş olması gerektiğini belirtir.WELL_FORMED_XML
İleti gövdesi iyi biçimlendirilmiş xml içermesi gerektiğini belirtir.ŞEMA KOLEKSİYONU İLE VALID_XMLschema_collection_name
İleti gövdesi xml şemasını belirtilen şema koleksiyon ile standardıyla uyumlu içermesi gerektiğini belirtir schema_collection_name Varolan bir xml şema koleksiyonadı olmalı.
Açıklamalar
Service Brokergelen iletilerin doğrular.Doğrulama türü belirtilen, uygun olmayan bir ileti gövdesi bir ileti içeriyorsa, Service Broker geçersiz bir ileti atar ve işlevi bir hata iletisi hizmet , gönderilen ileti.
Her iki tarafında bir konuşma ileti türüiçin aynı adı tanımlamanız gerekir.Sorun giderme yardımcı olmak için her iki tarafında bir konuşma genellikle ileti türü, aynı doğrulamasını rağmen belirtmek Service Broker gerektirmez konuşma her iki tarafına kullanın aynı doğrulama.
ileti türü , geçici bir nesne olamaz.İleti türü adları ile başlayan # izin verilir, ancak kalıcı nesneleridir.
İzinler
Üyeleri için varsayılan ileti türü oluşturma izni db_ddladmin veya db_owner veritabanı rolleri sabit ve sysadmin sabit sunucu rolü.
ileti türü için başvurular izni sahibi ileti türü, üyeleri için varsayılan db_owner veritabanı rolüve üyeleri sabit sysadminsabit sunucu rolü.
create message type deyim bir şema koleksiyonbelirttiğinde, deyim yürütme kullanıcı belirtilen şema koleksiyon başvurular izninizin olması gerekir.
Örnekler
A.İyi biçimlendirilmiş xml içeren bir ileti türü oluşturma
Aşağıdaki örnek, iyi biçimlendirilmiş xml içeren yeni bir ileti türü oluşturur.
CREATE MESSAGE TYPE
[//Adventure-Works.com/Expenses/SubmitExpense]
VALIDATION = WELL_FORMED_XML ;
B.xml yazılan içeren bir ileti türü oluşturma
Aşağıdaki örnek ileti türü için xml olarak kodlanmış bir gider raporu oluşturur.Örnek basit gider raporu için şema içeren bir xml şema koleksiyon oluşturur.Örnek daha sonra doğrulama şemaya iletileri yeni bir ileti türü oluşturur.
CREATE XML SCHEMA COLLECTION ExpenseReportSchema AS
N'<?xml version="1.0" encoding="UTF-16" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://Adventure-Works.com/schemas/expenseReport"
xmlns:expense="http://Adventure-Works.com/schemas/expenseReport"
elementFormDefault="qualified"
>
<xsd:complexType name="expenseReportType">
<xsd:sequence>
<xsd:element name="EmployeeName" type="xsd:string"/>
<xsd:element name="EmployeeID" type="xsd:string"/>
<xsd:element name="ItemDetail"
type="expense:ItemDetailType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ItemDetailType">
<xsd:sequence>
<xsd:element name="Date" type="xsd:date"/>
<xsd:element name="CostCenter" type="xsd:string"/>
<xsd:element name="Total" type="xsd:decimal"/>
<xsd:element name="Currency" type="xsd:string"/>
<xsd:element name="Description" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ExpenseReport" type="expense:expenseReportType"/>
</xsd:schema>' ;
CREATE MESSAGE TYPE
[//Adventure-Works.com/Expenses/SubmitExpense]
VALIDATION = VALID_XML WITH SCHEMA COLLECTION ExpenseReportSchema ;
C.Boş bir ileti için bir ileti türü oluşturma
Aşağıdaki örnek, boş kodlama ile yeni bir ileti türü oluşturur.
CREATE MESSAGE TYPE
[//Adventure-Works.com/Expenses/SubmitExpense]
VALIDATION = EMPTY ;
D.İkili veri içeren bir ileti türü oluşturma
Aşağıdaki örnek, ikili veri saklamak için yeni bir ileti türü oluşturur.İleti xml olmayan veriler içerdiğinden, bu ileti türü doğrulama türünü belirten NONE.Bu durumda, bu tür bir ileti alır uygulama ileti verileri içerir ve veri türü beklenen olduğunu doğrulamanız gerektiği, dikkat edin.
CREATE MESSAGE TYPE
[//Adventure-Works.com/Expenses/ReceiptImage]
VALIDATION = NONE ;