Condividi tramite


SEND (Transact-SQL)

Invia un messaggio utilizzando una conversazione già esistente.

Sintassi

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

Argomenti

  • ON CONVERSATION conversation_handle
    Specifica la conversazione alla quale appartiene il messaggio. conversation_handle deve contenere un identificatore di conversazione valido.
  • MESSAGE TYPE message_type_name
    Specifica il tipo di messaggio del messaggio inviato. Questo tipo di messaggio deve essere incluso nel contratto di servizio utilizzato da questa conversazione. Il contratto deve consentire al tipo di messaggio di essere inviato da questo lato della conversazione. Ad esempio, la destinazione della conversazione può soltanto inviare messaggi specificati nel contratto come SENT BY TARGET o SENT BY ANY. Se questa clausola viene omessa, il messaggio sarà del tipo DEFAULT.
  • message_body_expression
    Fornisce un'espressione che rappresenta il corpo del messaggio. L'oggetto message_body_expression è facoltativo. Se tuttavia message_body_expression è presente, l'espressione deve essere di un tipo convertibile in varbinary(max). L'espressione non può essere NULL. Se questa clausola viene omessa, il corpo del messaggio sarà vuoto.

Osservazioni

ms188407.note(it-it,SQL.90).gifImportante:
Se l'istruzione SEND non è la prima istruzione in un batch o in una stored procedure, l'istruzione precedente deve terminare con un punto e virgola (;), ovvero il carattere di terminazione delle istruzioni per Transact-SQL.

L'istruzione SEND blocca il gruppo di conversazioni a cui appartiene l'handle di conversazione specificato.

L'istruzione SEND non è valida in una funzione definita dall'utente.

Autorizzazioni

Per inviare un messaggio, l'utente corrente deve disporre dell'autorizzazione SEND per il servizio da cui proviene il dialogo. Se esiste un'associazione al servizio remoto per il servizio, l'utente specificato in quell'associazione al servizio remoto deve disporre delle autorizzazioni RECEIVE nella coda per il servizio da cui proviene il dialogo.

Esempi

A. Invio di un messaggio

In questo esempio viene avviato un dialogo e inviato un messaggio XML nel dialogo. Per inviare il messaggio, l'oggetto xml viene convertito in 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) ;

Vedere anche

Riferimento

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

Altre risorse

Esercitazioni su Service Broker

Guida in linea e informazioni

Assistenza su SQL Server 2005