Esempio di script di servizio

Si applica a:SQL ServerIstanza gestita di SQL di Azure

In questo esempio di codice Transact-SQL viene definito un servizio per l'archiviazione di documenti XML non tipizzati. Sono inclusi due script: lo script del contratto e lo script di definizione del servizio. Lo script del contratto definisce i tipi di messaggio e il contratto per il servizio. La definizione del tipo di messaggio e la definizione del contratto devono corrispondere sia per il servizio di avvio che per il servizio di destinazione. Di conseguenza, le definizioni vengono incluse in uno script di definizione del servizio separato che può essere distribuito ai database che ospitano il servizio di avvio. Lo script di definizione del servizio definisce il servizio stesso. Questo script deve essere eseguito solo in un database che implementa il servizio di destinazione.

Nota

Lo script di definizione del servizio definisce il servizio di destinazione, ma non include un'implementazione del servizio.

Script del contratto

Nota

Gli esempi di codice in questo articolo sono stati testati usando il database di esempio AdventureWorks2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.

-- 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 di definizione del servizio

-- 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