Aracılığıyla paylaş


ileti türü (Transact-SQL) CREATE

Yeni bir ileti türü oluşturur.bir ileti türü ileti doğrulama adını tanımlar,Service Brokergerçekleştiren iletiler olan bu adı.Her iki tarafında bir konuşma aynı ileti türlerini tanımlamalısınız.

Topic link iconTransact-SQL sözdizimi kuralları

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
    Adı ileti türü oluşturmak için.Yeni bir ileti türü geçerli veritabanında oluşturulmuş ve YETKİLENDİRME belirtilen para sahibi yan tümce.Şema sunucu ve veritabanı adı belirtilemez.The message_type_name can be up to 128 characters.

  • owner_name yetkilendirme
    Sahibi ayarlar ileti türü belirtilen veritabanı kullanıcısı ya da rol.Geçerli kullanıcının olduğunda dbo or SA, owner_name herhangi bir geçerli kullanıcı veya rolün adını olabilir. Aksi takdirde,owner_namegeçerli kullanıcı adını, geçerli kullanıcı için özelliklerini al iznine sahip bir kullanıcı adı ve ait olduğu geçerli kullanıcı rolünün adı olmalıdır.Zaman bu yan tümce olan atlanırsa, ileti türü geçerli kullanıcıya ait.

  • DOĞRULAMA
    Belirtir nasılService Brokerdoğrulama ileti metni ileti bu tür.Bu yan belirtildiğinde, doğrulama yok için varsayılan kullanılır.

  • Yok
    Hiçbir doğrulama gerçekleştirildiğini belirtir.İleti gövdesi veri içerebilir veya null olabilir.

  • BOŞ
    İleti gövdesi null olması gerektiğini belirtir.

  • WELL_FORMED_XML
    İyi biçimlendirilmiş XML ileti metnini içermesi gerektiğini belirtir.

  • SCHEMA koleksiyon schema_collection_name ile VALID_XML
    Belirtilen şema koleksiyon, bir şema ile uyumlu bir XML ileti metnini içermesi gerektiğini belirtirschema_collection_nameadı olmalıdır. Varolan XML şema koleksiyon.

Remarks

Service Broker gelen iletilerin doğrular.Belirtilen zaman, olmayan uygun doğrulama türü ile ileti gövdesinde bir ileti içerirService Brokergeçersiz ileti atar ve bir hata iletisi, gönderilen hizmet verir. ileti.

Her iki tarafında bir 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 aynı doğrulamasını belirtmek ileti türü, ancakService Brokergerektirmez, her iki tarafında görüşme kullanmak aynı doğrulama.

Bir ileti türü geçici bir nesne olabilir.ileti türü ile başlayan adları**#** verilir, ancak kalıcı nesneler. olur

İzinler

Üyeleri için varsayılan bir ileti türü oluşturma iznidb_ddladmin ya da sabit veritabanı rolleri ve sysadmindb_owner rolü. sunucu sabit

Başvurular izin ileti türü için varsayılan ileti türü, üyelerinin sahibi içindb_owner sabit veritabanı rolü ve sabit sunucu rolü. sysadmin üyeleri

Şema koleksiyon CREATE ileti türü deyimi belirler, deyim yürütülürken kullanıcının belirtilen şema koleksiyon başvurular izninizin olması gerekir.

Örnekler

C.İ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ılı türü içeren bir ileti oluşturma

Aşağıdaki örnek, bir ileti türü için XML biçiminde kodlanmış bir gider raporu oluşturur.Bu örnek, basit bir gider raporu için şema içeren bir XML şema koleksiyon oluşturur.Bu örnek, sonra şemaya iletileri doğrulamak için kullandığı yöntemi 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.Çünkü veriyi XML değil, iletinin içeriği doğrulama türü ileti türünü belirtirNONE.Bu durumda, dikkat edin, bu tür bir ileti alır uygulama ileti verileri içerir ve veri türü gerekli olduğunu doğrulamanız gerekir.

CREATE MESSAGE TYPE
    [//Adventure-Works.com/Expenses/ReceiptImage]
    VALIDATION = NONE ;