sqloptions:environmentChangeNotifications (elemento de encabezado)
Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.
El encabezado SOAP sqloptions:environmentChangeNotifications permite al cliente especificar qué notificaciones de cambio de entorno desea recibir, por ejemplo:
<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>
La opción sqloptions:environmentChangeNotifications aparece como un encabezado SOAP. El encabezado está compuesto por un elemento, denominado sqloptions:environmentChangeNotifications. El elemento tiene cuatro atributos opcionales: databaseChange, languageChange, partnerChange y transactionBoundary; cada uno de ellos es un valor booleano. El valor predeterminado de los cuatro es false. Los atributos opcionales especifican qué notificaciones desea recibir el cliente.
En una solicitud solo puede aparecer una instancia de la opción sqloptions:environmentChangeNotifications. La opción no puede aparecer en una respuesta. Si hay varias instancias de la opción se generará un error, igual que si existe algún contenido en el nodo sqloptions:environmentChangeNotifications.
Si se utilizan sesiones SOAP, esta opción debe aparecer en la misma solicitud que el atributo sqloptions:sqlsession initiate. Si esta opción aparece en alguna solicitud con un encabezado sqloptions:sqlSession que no contiene también el atributo initiate, se genera un error.
A continuación se muestra un fragmento de esquema de la opción sqloptions:environmentChangeNotifications:
<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>
Ejemplos
A continuación se muestran ejemplos de utilización del encabezado sqloptions:environmentChangeNotifications en mensajes de solicitud y respuesta SOAP.
Solicitud
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>
Respuesta
<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>