ALTER SERVICE (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Verandert een bestaande dienst.

Transact-SQL syntaxis-conventies

Syntax

ALTER SERVICE service_name   
   [ ON QUEUE [ schema_name . ]queue_name ]   
   [ ( < opt_arg > [ , ...n ] ) ]  
[ ; ]  
  
<opt_arg> ::=  
   ADD CONTRACT contract_name | DROP CONTRACT contract_name  

Arguments

service_name
Is de naam van de dienst die moet veranderen. Server-, database- en schemanamen kunnen niet worden gespecificeerd.

OP QUEUE [ schema_name]queue_name
Specificeert de nieuwe wachtrij voor deze dienst. Service Broker verplaatst alle berichten voor deze dienst van de huidige wachtrij naar de nieuwe wachtrij.

VOEG CONTRACTcontract_name
Specificeert een contract om toe te voegen aan de contractset die door deze dienst wordt blootgesteld.

DROP CONTRACT contract_name
Specificeert een contract om te verwijderen uit de contractset die door deze service wordt blootgesteld. Service Broker stuurt een foutmelding bij alle bestaande gesprekken met deze dienst die dit contract gebruiken.

Remarks

Wanneer de ALTER SERVICE verklaring een contract van een dienst verwijdert, kan de dienst geen doelwit meer zijn voor gesprekken die dat contract gebruiken. Daarom staat Service Broker geen nieuwe gesprekken met de dienst toe op dat contract. Bestaande gesprekken die het contract gebruiken, blijven onaangetast.

Om de AUTHORIZATION voor een dienst te wijzigen, gebruik je de ALTER AUTHORIZATION verklaring.

Permissions

Toestemming voor het wijzigen van een service is standaard voor de eigenaar van de service, leden van de db_ddladmin of db_owner vaste databaserollen, en leden van de sysadmin vaste serverrol.

Examples

A. De wachtrij wijzigen voor een dienst

Het volgende voorbeeld verandert de service zodat hij //Adventure-Works.com/Expenses de wachtrij NewQueuegebruikt.

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

B. Een nieuw contract aan de dienst toevoegen

Het volgende voorbeeld verandert de dienst zodat dialogen //Adventure-Works.com/Expenses op het contract //Adventure-Works.com/Expensesmogelijk zijn.

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

C. Een nieuw contract aan de dienst toevoegen, bestaande contracten laten vallen

Het volgende voorbeeld wijzigt de //Adventure-Works.com/Expenses dienst zodat dialogen over het contract //Adventure-Works.com/Expenses/ExpenseProcessing worden toegestaan en dialogen op het contract //Adventure-Works.com/Expenses/ExpenseSubmissionniet meer worden toegestaan.

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

D. De eigenaar van een dienst wijzigen

Het volgende voorbeeld verandert de eigenaar van //Adventure-Works.com/Expenses in de DBO-gebruiker .

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

Zie ook