Compartilhar via


ALTER SERVICE (Transact-SQL)

Altera um serviço existente.

Ícone de vínculo de tópicoConvenções de 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. 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. Service Broker envia uma mensagem de erro em quaisquer conversações 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 conversações que usam esse contrato. Portanto, Service Broker não permite conversações novas ao serviço naquele contrato. As conversações 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]) ;