SEND (Transact-SQL)

Sendet eine Nachricht mithilfe einer vorhandenen Konversation.

Syntax

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

Argumente

  • ON CONVERSATION conversation_handle
    Gibt die Konversation an, zu der die Nachricht gehört. conversation_handle muss eine gültige Konversations-ID enthalten.
  • MESSAGE TYPE message_type_name
    Gibt den Nachrichtentyp der gesendeten Nachricht an. Der Nachrichtentyp muss in dem von der Konversation verwendeten Dienstvertrag enthalten sein. Der Vertrag muss das Senden des Nachrichtentyps von dieser Seite der Konversation zulassen. Das Ziel der Konversation kann z. B. nur Nachrichten senden, die im Vertrag als SENT BY TARGET oder SENT BY ANY angegeben sind. Wird diese Klausel ausgelassen, ist die Nachricht vom Nachrichtentyp DEFAULT.
  • message_body_expression
    Stellt einen Ausdruck bereit, der den Nachrichtentext darstellt. message_body_expression ist optional. Wenn message_body_expression jedoch angegeben ist, muss der Ausdruck von einem Typ sein, der in varbinary(max) konvertiert werden kann. Der Ausdruck kann nicht NULL sein. Wird diese Klausel ausgelassen, ist der Nachrichtentext leer.

Hinweise

ms188407.note(de-de,SQL.90).gifWichtig:
Wenn es sich bei der SEND-Anweisung nicht um die erste Anweisung in einem Batch oder in einer gespeicherten Prozedur handelt, muss die vorhergehende Anweisung mit einem Semikolon (;) abgeschlossen werden, also mit dem Abschlusszeichen für eine Transact-SQL-Anweisung.

Die SEND-Anweisung sperrt die Konversationsgruppe, zu der das angegebene Konversationshandle gehört.

SEND ist in einer benutzerdefinierten Funktion ungültig.

Berechtigungen

Zum Senden einer Nachricht muss der aktuelle Benutzer über die SEND-Berechtigung für den Dienst verfügen, aus dem der Dialog stammt. Falls eine Remotedienstbindung für den Dienst vorhanden ist, muss der in der Remotedienstbindung angegebene Benutzer über RECEIVE-Berechtigungen in der Warteschlange für den Dienst verfügen, aus dem der Dialog stammt.

Beispiele

A. Senden einer Nachricht

In diesem Beispiel wird ein Dialog gestartet und eine XML-Nachricht im Dialog gesendet. Zum Senden der Nachricht wird das XML-Objekt in varbinary(MAX) konvertiert.

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

Siehe auch

Verweis

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

Andere Ressourcen

Service Broker-Lernprogramme

Hilfe und Informationen

Informationsquellen für SQL Server 2005