Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Managed Instance
Dans cette leçon, vous allez apprendre à démarrer une conversation qui s’étend sur deux instances du moteur de base de données et envoyer un message de demande de l’instance initiateur à l’instance cible. Exécutez ces étapes à partir d’une copie de Management Studio exécutée sur le même ordinateur que l’instance initiatrice.
Procédures
Basculer vers la base de données InitiatorDB
Copiez et collez le code suivant dans une fenêtre de l'éditeur de requête. Ensuite, exécutez-le pour basculer le contexte vers la base de données InstInitiatorDB où vous lancez la conversation.
USE InstInitiatorDB; GO
Démarrer une conversation et envoyer un message de demande
Copiez et collez le code suivant dans une fenêtre de l’Éditeur de requête, puis exécutez-la pour commencer une conversation et envoyer un message de demande à TgtDB/2InstSample/TargetService dans InstTargetDB. Le code doit être exécuté dans un bloc, car une variable est utilisée pour passer un handle de boîte de dialogue de BEGIN DIALOG l’instruction SEND .
Le lot exécute l’instruction BEGIN DIALOG pour commencer la conversation, puis génère un message de requête. Ensuite, il utilise le handle de boîte de dialogue dans une SEND instruction pour envoyer le message de demande sur cette conversation. La dernière SELECT instruction affiche simplement le texte du message envoyé.
DECLARE @InitDlgHandle AS UNIQUEIDENTIFIER;
DECLARE @RequestMsg AS NVARCHAR (100);
BEGIN TRANSACTION;
BEGIN DIALOG @InitDlgHandle
FROM SERVICE [//InstDB/2InstSample/InitiatorService]
TO SERVICE N'//TgtDB/2InstSample/TargetService'
ON CONTRACT [//BothDB/2InstSample/SimpleContract]
WITH ENCRYPTION = ON;
SELECT @RequestMsg = N'<RequestMsg>Message for Target service.</RequestMsg>';
SEND ON CONVERSATION (@InitDlgHandle)
MESSAGE TYPE [//BothDB/2InstSample/RequestMessage] (@RequestMsg);
SELECT @RequestMsg AS SentRequestMsg;
COMMIT TRANSACTION;
GO