ALTER SERVICE (Transact-SQL)

Modifica un servizio esistente.

Icona di collegamento a un argomentoConvenzioni della 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

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 alla nuova coda.
  • 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 utilizzano 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 AUTHORIZATION per un servizio, utilizzare l'istruzione ALTER AUTHORIZATION.

Autorizzazioni

L'autorizzazione per modificare un servizio viene assegnata per impostazione predefinita al proprietario del servizio, ai membri dei ruoli predefiniti del database ddl_admin o db_owner e ai membri del ruolo predefinito del server sysadmin.

Esempi

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

Vedere anche

Riferimento

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

Altre risorse

Creating Service Broker Applications

Guida in linea e informazioni

Assistenza su SQL Server 2005