ALTER SERVICE (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Ändert einen vorhandenen Dienst.

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  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

service_name
Der Name des zu ändernden Diensts. Server-, Datenbank- und Schemaname können nicht angegeben werden.

ON QUEUE [ schema_name. ] queue_name
Gibt die neue Warteschlange für diesen Dienst an. Service Broker verschiebt alle Meldungen für diesen Dienst aus der aktuellen Warteschlange in die neue.

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 von diesem Dienst verfügbar gemachten Vertragssatz gelöscht werden soll. Service Broker sendet eine Fehlermeldung die vorhandene Konversationen mit diesem Dienst, die diesen Vertrag verwenden.

Bemerkungen

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 und Löschen des vorhandenen Vertrags

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

D: Ändern des Besitzers eines Diensts

Das folgende Beispiel ändert den Besitzer von //Adventure-Works.com/Expenses zum Benutzer dbo.

ALTER AUTHORIZATION ON SERVICE::[//Adventure-Works.com/Expenses] TO dbo ;
GO

Siehe auch