Freigeben über


sqloptions:environmentChangeNotifications (Header-Element)

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

Mithilfe des SOAP-Headers sqloptions:environmentChangeNotifications kann der Client angeben, welche Benachrichtigungen bei Umgebungsänderungen an den Client gesendet werden sollen. Beispiel:

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
<sqloptions:environmentChangeNotifications           SOAP-ENV:mustUnderstand="1"         databaseChange="true" | "false"          languageChange="true" | "false"          transactionBoundary="true" | "false"  />
</SOAP-ENV:Header>

Die sqloptions:environmentChangeNotifications-Option wird als SOAP-Header verwendet. Der Header besteht aus einem Element mit dem Namen sqloptions:environmentChangeNotifications. Das Element besitzt vier optionale Attribute: databaseChange, languageChange, partnerChange und transactionBoundary; jedes dieser Attribute ist ein boolescher Wert. Der Standardwert ist für alle vier Attribute false. Die optionalen Attribute geben an, welche Benachrichtigungen der Client erhalten möchte.

In einer Anforderung kann nur eine Instanz der Option sqloptions:environmentChangeNotifications enthalten sein. Die Option darf nicht in einer Antwort verwendet werden. Mehrere Instanzen der Option generieren einen Fehler, ebenso wie das Vorhandensein von Inhalt im sqloptions:environmentChangeNotifications-Knoten.

Wenn SOAP-Sitzungen verwendet werden, muss diese Option in derselben Anforderung enthalten sein wie das sqloptions:sqlsession initiate-Attribut. Wenn diese Option in einer Anforderung mit einem sqloptions:sqlSession-Header verwendet wird, die nicht außerdem das initiate-Attribut enthält, wird ein Fehler generiert.

Das folgende Beispiel ist ein Schemafragment für die sqloptions:environmentChangeNotifications-Option:

<xs:element name="environmentChangeNotifications" form="qualified">
    <xs:annotation>
        <xs:documentation>
            Receive environment change notifications.
        </xs:documentation>
    </xs:annotation>
    <xs:complexType>
        <xs:attribute
          name="databaseChange"
          default="false"
          type="xs:boolean"
          form="unqualified">
            <xs:annotation>
                <xs:documentation>
                    Receive notifications of database changes.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute
          name="languageChange"
          default="false"
          type="xs:boolean"
          form="unqualified">
            <xs:annotation>
                <xs:documentation>
                    Receive notifications of language changes.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute
          name="transactionBoundary"
          default="false"
          type="xs:boolean"
          form="unqualified">
            <xs:annotation>
                <xs:documentation>
                    Receive notifications of transaction boundaries.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="partnerChange" default="false" type="xsd:boolean" form="unqualified">
            <xs:annotation>
                <xs:documentation>Receive notifications of partner changes.</xs:documentation> 
            </xs:annotation>
         </xs:attribute>
    </xs:complexType>
</xs:element>

Beispiele:

Die folgenden Beispiele zeigen die Verwendung des sqloptions:environmentChangeNotifications-Headers in SOAP-Anforderungs- und Antwortnachrichten.

Anforderung

POST !HTTPURL! HTTP/1.1
Content-Type: text/xml
Host: !SERVERNAME!
SOAPAction: "https://schemas.microsoft.com/sqlserver/2004/SOAPsqlbatch"
<SOAP-ENV:Envelope  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
                                        xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP"
                                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                        xmlns:sqlparam="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlParameter"
                                        xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types"
                                        xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options"
> 
  <SOAP-ENV:Header>
    <sqloptions:environmentChangeNotifications           SOAP-ENV:mustUnderstand="1"         databaseChange="true"          languageChange="true"          transactionBoundary="true" />
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <sql:sqlbatch>
      <sql:BatchCommands>
         SET LANGUAGE Italian
         SELECT @@LANGUAGE as lang   
         USE  AdventureWorks2008R2
         BEGIN TRANSACTION testTransaction
         SELECT @@LANGUAGE as language
         COMMIT TRANSACTION testTransaction
       </sql:BatchCommands>
     </sql:sqlbatch>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Antwort

<Response>
  <Version>HTTP/1.1</Version>
  <Status>200</Status>
  <StatusText>OK</StatusText>
  <Headers>
    <Content-Type>text/xml; charset=utf-8</Content-Type>
    <Date>exists</Date>
    <Server>Microsoft-SQL/9.0 Microsoft-HTTPAPI/1.0</Server>
    <Transfer-Encoding>chunked</Transfer-Encoding>
  </Headers>
  <Body>
    <SOAP-ENV:Envelope xml:space="preserve" 
                       xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                       xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/" 
                       xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP" 
                       xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types" 
                       xmlns:sqlrowcount="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlRowCount" 
                       xmlns:sqlmessage="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlMessage" 
                       xmlns:sqlresultstream="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlResultStream" 
                       xmlns:sqltransaction="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlTransaction" 
                       xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes">
      <SOAP-ENV:Body>
        <sql:sqlbatchResponse>
          <sql:sqlbatchResult>
            <sqlresultstream:SqlMessage xsi:type="sqlmessage:SqlMessage">
              <sqlmessage:Class>0</sqlmessage:Class>
              <sqlmessage:LineNumber>0</sqlmessage:LineNumber>
              <sqlmessage:Message>Changed language setting to Italiano.</sqlmessage:Message>
              <sqlmessage:Number>5703</sqlmessage:Number>
              <sqlmessage:Source>Microsoft-SQL/9.0</sqlmessage:Source>
              <sqlmessage:State>1</sqlmessage:State>
            </sqlresultstream:SqlMessage>
            <sqlresultstream:SqlRowSet xsi:type="sqlsoaptypes:SqlRowSet">
              <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <SqlRowSet1 xmlns="urn:schemas-microsoft-com:sql:SqlRowSet1">
                  <row>
                    <lang>Italiano</lang>
                  </row>
                </SqlRowSet1>
              </diffgr:diffgram>
            </sqlresultstream:SqlRowSet>
            <sqlresultstream:SqlRowCount xsi:type="sqlrowcount:SqlRowCount">
              <sqlrowcount:Count>1</sqlrowcount:Count>
            </sqlresultstream:SqlRowCount>
            <sqlresultstream:SqlMessage xsi:type="sqlmessage:SqlMessage">
              <sqlmessage:Class>0</sqlmessage:Class>
              <sqlmessage:LineNumber>0</sqlmessage:LineNumber>
              <sqlmessage:Message>Changed database context to 'Northwind'.</sqlmessage:Message>
              <sqlmessage:Number>5701</sqlmessage:Number>
              <sqlmessage:Source>Microsoft-SQL/9.0</sqlmessage:Source>
              <sqlmessage:State>1</sqlmessage:State>
            </sqlresultstream:SqlMessage>
            <sqlresultstream:SqlTransaction xsi:type="sqltransaction:SqlTransaction">
              <sqltransaction:Descriptor>asdf</sqltransaction:Descriptor>
              <sqltransaction:Type>Begin</sqltransaction:Type>
            </sqlresultstream:SqlTransaction>
            <sqlresultstream:SqlRowSet xsi:type="sqlsoaptypes:SqlRowSet">
              <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <SqlRowSet2 xmlns="urn:schemas-microsoft-com:sql:SqlRowSet2">
                  <row>
                    <language>Italiano</language>
                  </row>
                </SqlRowSet2>
              </diffgr:diffgram>
            </sqlresultstream:SqlRowSet>
            <sqlresultstream:SqlRowCount xsi:type="sqlrowcount:SqlRowCount">
              <sqlrowcount:Count>1</sqlrowcount:Count>
            </sqlresultstream:SqlRowCount>
            <sqlresultstream:SqlTransaction xsi:type="sqltransaction:SqlTransaction">
              <sqltransaction:Descriptor>asdf</sqltransaction:Descriptor>
              <sqltransaction:Type>Commit</sqltransaction:Type>
            </sqlresultstream:SqlTransaction>
          </sql:sqlbatchResult>
        </sql:sqlbatchResponse>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
  </Body>
</Response>

Siehe auch

Verweis