Ejemplo de script de servicio

Se aplica a:SQL ServerAzure SQL Managed Instance

Este ejemplo de código de Transact-SQL define un servicio que almacena los documentos XML sin tipo. Se incluyen dos scripts: el script de contrato y el script de definición de servicio. El script del contrato define los tipos de mensaje y el contrato para el servicio. La definición del tipo de mensaje y la definición del contrato deben coincidir tanto para el servicio iniciado como para el servicio de destino. Por lo tanto, las definiciones se incluyen en un script de definición de servicio independiente que se puede distribuir a las bases de datos que hospedan el servicio iniciador. El script de definición de servicio define el propio servicio. Este script solamente se debe ejecutar en una base de datos que implementa el servicio de destino.

Nota:

El script de definición de servicio define el servicio de destino, pero no incluye una implementación del servicio.

Script de contrato

Nota:

Los ejemplos de código de este artículo se probaron mediante la base de datos de ejemplo AdventureWorks2025, que puede descargar de la página principal de ejemplos y proyectos de comunidad de Microsoft SQL Server .

-- The contract script contains definitions that must be present
-- for both the initiating service and the target service.
USE AdventureWorks2008R2;
GO

-- Create messages for each broker-to-broker
-- communication needed to complete the task.

-- Message for the initiator to send XML
-- to be archived.
CREATE MESSAGE TYPE [//Adventure-Works.com/messages/ArchiveXML]
    VALIDATION = WELL_FORMED_XML;
GO

-- Message to return event archiving information.
CREATE MESSAGE TYPE [//Adventure-Works.com/messages/AcknowledgeArchiveXML]
    VALIDATION = WELL_FORMED_XML;
GO

-- Create a service contract to structure
-- an event archiving conversation, using
-- the message types defined above.
CREATE CONTRACT [//Adventure-Works.com/contracts/ArchiveXML/v1.0]
    ([//Adventure-Works.com/messages/ArchiveXML] SENT BY INITIATOR,
    [//Adventure-Works.com/messages/AcknowledgeArchiveXML] SENT BY TARGET);
GO

Script de definición de servicio

-- This script defines the target service. The objects created
-- by this script are only required in a database that hosts
-- the target service.
USE AdventureWorks2008R2;
GO

-- Create the service queue that will receive
-- messages for conversations that implement
-- the ArchiveXML contract.
CREATE QUEUE ArchiveQueue;
GO

-- Create the service object that exposes the
-- ArchiveEvents service contract and maps
-- it to the ArchiveQueue service queue.
CREATE SERVICE [//Adventure-Works.com/ArchiveService]
    ON QUEUE ArchiveQueue
    ([//Adventure-Works.com/contracts/ArchiveXML/v1.0]);
GO