Exempel på tjänstskript

gäller för:SQL ServerAzure SQL Managed Instance

Det här Transact-SQL kodexemplet definierar en tjänst som arkiverar otypade XML-dokument. Två skript ingår: kontraktskriptet och tjänstdefinitionsskriptet. Kontraktskriptet definierar meddelandetyperna och kontraktet för tjänsten. Definitionen av meddelandetyp och kontraktsdefinitionen ska matcha både för den initierande tjänsten och måltjänsten. Definitionerna ingår därför i ett separat tjänstdefinitionsskript som kan distribueras till de databaser som är värdar för den initierande tjänsten. Skriptet för tjänstdefinition definierar själva tjänsten. Det här skriptet ska endast köras i en databas som implementerar måltjänsten.

Notera

Skriptet för tjänstdefinition definierar måltjänsten, men innehåller ingen implementering av tjänsten.

Kontraktskript

Notera

Kodexemplen i den här artikeln har testats med hjälp av AdventureWorks2025 exempeldatabas som du kan ladda ned från Microsoft SQL Server-exempel och Community Projects startsida.

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

Skript för tjänstdefinition

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