ALTER SERVICE (Transact-SQL)

Ändert einen vorhandenen Dienst.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

ALTER SERVICE service_name 
   [ ON QUEUE [ schema_name . ]queue_name ] 
   [ ( < opt_arg > [ , ...n ] ) ]
[ ; ]

<opt_arg> ::=
   ADD CONTRACT contract_name | DROP CONTRACT contract_name

Argumente

  • service_name
    Der Name des zu ändernden Diensts. Server-, Datenbank- und Schemanamen können nicht angegeben werden.
  • ON QUEUE [ schema_name**.** ] queue_name
    Gibt die neue Warteschlange für diesen Dienst an. Service Broker verschiebt alle Nachrichten für diesen Dienst aus der aktuellen Warteschlange in die neue Warteschlange
  • ADD CONTRACT contract_name
    Gibt einen Vertrag an, der dem durch diesen Dienst verfügbar gemachten Vertragssatz hinzugefügt werden soll.
  • DROP CONTRACT contract_name
    Gibt einen Vertrag an, der aus dem durch diesen Dienst verfügbar gemachten Vertragssatz gelöscht werden soll. Service Broker sendet eine Fehlermeldung für alle vorhandenen Konversationen mit diesem Dienst, die diesen Vertrag verwenden.

Hinweise

Wenn mithilfe der ALTER SERVICE-Anweisung ein Vertrag aus einem Dienst gelöscht wird, kann der Dienst kein Ziel für Konversationen mehr sein, die diesen Vertrag verwenden. Deshalb lässt Service Broker keine neuen Konversationen mit dem Dienst für diesen Vertrag zu. Bestehende Konversationen, die den Vertrag verwenden, sind davon nicht betroffen.

Verwenden Sie die ALTER AUTHORIZATION-Anweisung, wenn Sie AUTHORIZATION für einen Dienst ändern möchten.

Berechtigungen

Die Berechtigung zum Ändern eines Diensts erhalten standardmäßig die Besitzer des Diensts, Mitglieder der festen Datenbankrollen db_ddladmin oder db_owner sowie Mitglieder der festen Serverrolle sysadmin.

Beispiele

A. Ändern der Warteschlange für einen Dienst

Im folgenden Beispiel wird der //Adventure-Works.com/Expenses-Dienst so geändert, dass er die Warteschlange NewQueue verwendet.

ALTER SERVICE [//Adventure-Works.com/Expenses]
    ON QUEUE NewQueue ;

B. Hinzufügen eines neuen Vertrags zum Dienst

Im folgenden Beispiel wird der //Adventure-Works.com/Expenses-Dienst so geändert, dass Dialoge für den Vertrag //Adventure-Works.com/Expenses zugelassen sind.

ALTER SERVICE [//Adventure-Works.com/Expenses]
    (ADD CONTRACT [//Adventure-Works.com/Expenses/ExpenseSubmission]) ;

C. Hinzufügen eines neuen Vertrags zum Dienst, wobei der vorhandene Vertrag gelöscht wird

Im folgenden Beispiel wird der //Adventure-Works.com/Expenses-Dienst so geändert, dass Dialoge für den Vertrag //Adventure-Works.com/Expenses/ExpenseProcessing zugelassen sind und Dialoge für den Vertrag //Adventure-Works.com/Expenses/ExpenseSubmission nicht zugelassen sind.

ALTER SERVICE [//Adventure-Works.com/Expenses]
    (ADD CONTRACT [//Adventure-Works.com/Expenses/ExpenseProcessing], 
     DROP CONTRACT [//Adventure-Works.com/Expenses/ExpenseSubmission]) ;

Siehe auch

Verweis

CREATE SERVICE (Transact-SQL)
DROP SERVICE (Transact-SQL)
EVENTDATA (Transact-SQL)

Andere Ressourcen

Creating Service Broker Applications

Hilfe und Informationen

Informationsquellen für SQL Server 2005