Condividi tramite


ALTER SERVICE (Transact-SQL)

Si applica a:SQL Server Istanza gestita di SQL di Azure

Modifica un servizio esistente.

Convenzioni di sintassi Transact-SQL

Sintassi

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

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

service_name
Nome del servizio da modificare. Non è possibile specificare i nomi del server, del database e dello schema.

ON QUEUE [ schema_name. ] queue_name
Specifica la nuova coda per questo servizio. Service Broker sposta tutti i messaggi per questo servizio dalla coda corrente a quella nuova.

ADD CONTRACT contract_name
Specifica un contratto da aggiungere al set dei contratti esposti da questo servizio.

DROP CONTRACT contract_name
Specifica un contratto da eliminare dal set dei contratti esposti da questo servizio. Service Broker invia un messaggio di errore per tutte le conversazioni esistenti con il servizio che usano questo contratto.

Osservazioni:

Quando l'istruzione ALTER SERVICE elimina un contratto da un servizio, il servizio non può più essere la destinazione per le conversazioni che utilizzano tale contratto. Service Broker non consente pertanto nuove conversazioni con il servizio in base a quel contratto. Le conversazioni esistenti che utilizzano il contratto non subiscono variazioni.

Per modificare il parametro AUTHORIZATION per un servizio, utilizzare l'istruzione ALTER AUTHORIZATION.

Autorizzazioni

L'autorizzazione per la modifica di un servizio viene assegnata per impostazione predefinita al proprietario del servizio, ai membri del ruolo predefinito del database db_ddladmin o db_owner e ai membri del ruolo predefinito del server sysadmin.

Esempi

R. Modifica della coda per un servizio

Nell'esempio seguente il servizio //Adventure-Works.com/Expenses viene modificato in modo che utilizzi la coda NewQueue.

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

B. Aggiunta di un nuovo contratto al servizio

Nell'esempio seguente il servizio //Adventure-Works.com/Expenses viene modificato in modo da consentire i dialoghi nel contratto //Adventure-Works.com/Expenses.

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

C. Aggiunta di un nuovo contratto al servizio, eliminazione del contratto esistente

Nell'esempio seguente il servizio //Adventure-Works.com/Expenses viene modificato in modo da consentire i dialoghi nel contratto //Adventure-Works.com/Expenses/ExpenseProcessing e da non consentire i dialoghi nel contratto //Adventure-Works.com/Expenses/ExpenseSubmission.

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

D. Modifica del proprietario di un servizio

Nell'esempio seguente il proprietario di //Adventure-Works.com/Expenses viene sostituito con l'utente di dbo.

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

Vedi anche