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
Wichtig: |
---|
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)