Compartilhar via


ALTER SERVICE (Transact-SQL)

Altera um serviço existente.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

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

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

Argumentos

  • service_name
    É o nome do serviço a ser alterado. Os nomes de servidor, banco de dados e esquema não podem ser especificados.

  • ON QUEUE [ schema_name**.** ] queue_name
    Especifica a nova fila deste serviço. O Service Broker move todas as mensagens deste serviço da fila atual para uma nova fila.

  • ADD CONTRACT contract_name
    Especifica um contrato para acrescentar ao conjunto de contratos exposto por este serviço.

  • DROP CONTRACT contract_name
    Especifica um contrato a ser excluído do conjunto de contratos exposto por este serviço. O Service Broker envia uma mensagem de erro em quaisquer conversas existentes com este serviço que usem este contrato.

Comentários

Quando a instrução ALTER SERVICE exclui um contrato de um serviço, o serviço não pode mais ser um destino das conversas que usam esse contrato. Portanto, Service Broker não permite conversas novas ao serviço naquele contrato. As conversas existentes que usam o contrato não são afetadas.

Para alterar a AUTHORIZATION para um serviço, use a instrução ALTER AUTHORIZATION.

Permissões

A permissão para alterar um serviço assume como padrão o proprietário do serviço, os membros das funções de banco de dados fixas db_ddladmin ou db_owner e os membros da função de servidor fixa sysadmin.

Exemplos

A.Alterando a fila para um serviço

O exemplo a seguir altera o serviço //Adventure-Works.com/Expenses para usar a fila NewQueue.

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

B.Adicionando um novo contrato ao serviço

O exemplo a seguir altera o serviço //Adventure-Works.com/Expenses para permitir caixas de diálogo no contrato //Adventure-Works.com/Expenses.

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

C.Adicionando um novo contrato ao serviço, descartando um contrato existente

O exemplo a seguir altera o serviço //Adventure-Works.com/Expenses para permitir caixas de diálogo no contrato //Adventure-Works.com/Expenses/ExpenseProcessing e para não permitir caixas de diálogo no contrato //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]) ;

Consulte também

Referência

CREATE SERVICE (Transact-SQL)

DROP SERVICE (Transact-SQL)

EVENTDATA (Transact-SQL)