İLETİ türü (Transact-sql) oluştur

Yeni bir ileti türü oluşturur. Bir ileti türü ileti ve doğrulama tanımlar, Service BrokerBu ada sahip iletileri gerçekleştirir. Her iki konuşma aynı ileti türlerini tanımlamalısınız.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

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ı içinde oluşturulur ve YETKILENDIRME yan tümcesinde belirtilen anapara ait. Sunucu, veritabanı ve şema adı belirtilemez. message_type_nameEn fazla 128 karakter olabilir.

  • YETKİLENDİRMEowner_name
    Belirtilen veritabanı kullanıcı veya rol için ileti türünü sahibi ayarlar. Geçerli kullanıcı ne zaman dbo veya sa, owner_nameherhangi bir geçerli kullanıcı ya da rol adı olabilir. Aksi takdirde, owner_namegeçerli kullanıcı adını, geçerli kullanıcı özelliklerini Al izni olan bir kullanıcı adı veya ait olduğu geçerli kullanıcı rolünün adı olmalı. Bu yan atlandığında, ileti türü, geçerli kullanıcıya aittir.

  • DOĞRULAMA
    Belirtir nasıl Service BrokerBu tür iletileri için ileti gövdesi doğrular. Bu yan tümcesi belirtildiğinde, doğrulama için hiçbiri varsayılan olarak ayarlanır.

  • NONE
    Hayır validation gerçekleştirildiğini 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 şema belirtilen şema koleksiyonu ile uyumludur içermesi gerektiğini belirtir schema_collection_nameVarolan bir xml şema koleksiyonu adı olmalı.

Açıklamalar

Service Brokergelen iletilerin doğrular. Belirtilen doğrulama türüyle uyumlu değil bir iletiyle bir ileti içeriyorsa, Service Brokergeçersiz bir ileti atar ve gönderilen ileti hizmeti için hata iletisi döndürür.

Her iki konuşmanın bir ileti türü için aynı adı tanımlamanız gerekir. Sorun giderme Yardımı için her iki konuşma genellikle aynı doğrulama iletisi türü için ancak belirtmek Service Brokerher iki görüşme aynı doğrulama kullanmasını gerektirmez.

Bir ileti türü, geçici bir nesne olamaz. Mesaj türü adları ile başlayan # izin verilir, ancak kalıcı nesnelerdir.

İzinler

Üyeleri için varsayılan bir ileti türü oluşturma izni db_ddladmin veya db_owner veritabanı rolleri sabit ve sysadmin sunucu rolü.

BAŞVURULAR izni bir ileti türü için varsayılan ileti türü, üyelerinin sahibi db_owner sabit veritabanı rolü ve üyeleri sysadmin sunucu rolü.

Ne zaman bir şema KOLEKSIYONU create message type deyimi belirtir, deyimi yürütme kullanıcı belirtilen şema koleksiyonu 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 ;   
  CREATE MESSAGE TYPE
    [//Adventure-Works.com/Expenses/SubmitExpense]
    VALIDATION = WELL_FORMED_XML ;   

B.Yazılan xml içeren bir ileti türü oluşturma

Aşağıdaki örnek, bir ileti türü için xml olarak kodlanmış bir gider raporu oluşturur. Örnek basit gider raporu şema içeren xml şema koleksiyonu oluşturur. Örneğin sonra iletileri şema karşı doğrulayan 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 ;

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 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 ;
 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 verileri içerecek olduğundan, ileti türünü doğrulama türünü belirtir NONE. Dikkat edin, bu durumda, bu tür bir ileti alır uygulama ileti verileri içerir ve veri türü beklenen olduğunu doğrulamanız gerekir.

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

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

Ayrıca bkz.

Başvuru

İLETİ türü (Transact-sql) değiştirme

İLETİ türü (Transact-sql) bırak

eventdata (Transact-sql)