ALTER SERVICE (Transact-SQL)
Altera um serviço existente.
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]) ;