Partager via


SEND (Transact-SQL)

Envoie un message à l'aide d'une conversation existante.

Syntaxe

SEND
   ON CONVERSATION conversation_handle
   [ MESSAGE TYPE message_type_name ]
   [ ( message_body_expression ) ]
[ ; ]

Arguments

  • ON CONVERSATION conversation_handle
    Spécifie la conversation à laquelle appartient le message. L'argument conversation_handle doit contenir un identificateur de conversation valide.
  • MESSAGE TYPE message_type_name
    Spécifie le type du message envoyé. Ce type de message doit être inclus dans le contrat de service qu'utilise la conversation. Le contrat doit autoriser l'envoi de ce type de message depuis cette partie de la conversation. Par exemple, la cible de la conversation ne peut envoyer que les messages spécifiés dans le contrat comme SENT BY TARGET ou SENT BY ANY. Si cette clause est omise, le message est du type DEFAULT.
  • message_body_expression
    Fournit une expression représentant le corps du message. L'argument message_body_expression est facultatif. Toutefois, si l'argument message_body_expression est présent, le type d'expression doit pouvoir être converti vers le type varbinary(max). Cette expression ne peut pas avoir la valeur NULL. Si cette clause est omise, le corps du message est vide.

Notes

ms188407.note(fr-fr,SQL.90).gifImportant :
Si l'instruction SEND n'est pas la première instruction d'un lot ou d'une procédure stockée, l'instruction précédente doit se terminer par un point-virgule (;), le terminateur d'instruction Transact-SQL.

L'instruction SEND verrouille le groupe de conversation auquel appartient le handle de conversation spécifié.

L'instruction SEND n'est pas valide dans une fonction définie par l'utilisateur.

Autorisations

Pour envoyer un message, l'utilisateur actuel doit disposer d'une autorisation SEND pour le service dont provient le dialogue. S'il existe une liaison de service distant, l'utilisateur spécifié dans celle-ci doit disposer d'autorisations RECEIVE sur la file d'attente pour le service dont provient le dialogue.

Exemple

A. Envoi d'un message

Cet exemple démarre une dialogue et envoie un message XML. Pour envoyer le message, l'exemple convertit l'objet xml au format varbinary(MAX).

DECLARE @dialog_handle UNIQUEIDENTIFIER,
        @ExpenseReport XML ;

SET @ExpenseReport = < construct message as appropriate for the application > ;

BEGIN DIALOG @dialog_handle
FROM SERVICE [//Adventure-Works.com/Expenses/ExpenseClient]
TO SERVICE '//Adventure-Works.com/Expenses'
ON CONTRACT [//Adventure-Works.com/Expenses/ExpenseProcessing] ;


SEND ON CONVERSATION @dialog_handle
    MESSAGE TYPE [//Adventure-Works.com/Expenses/SubmitExpense]
    (@ExpenseReport) ;

Voir aussi

Référence

BEGIN DIALOG CONVERSATION (Transact-SQL)
BEGIN CONVERSATION TIMER (Transact-SQL)
END CONVERSATION (Transact-SQL)

Autres ressources

Didacticiels de Service Broker

Aide et Informations

Assistance sur SQL Server 2005