ALTER BROKER PRIORITY (Transact-SQL)

Altera as propriedades de uma prioridade de conversação do Service Broker.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

ALTER BROKER PRIORITY ConversationPriorityName
FOR CONVERSATION
{ SET ( [ CONTRACT_NAME = {ContractName | ANY } ]
        [ [ , ] LOCAL_SERVICE_NAME = {LocalServiceName | ANY } ]
        [ [ , ] REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY } ]
        [ [ , ] PRIORITY_LEVEL = { PriorityValue | DEFAULT } ]
              )
}
[;]

Argumentos

  • ConversationPriorityName
    Especifica o nome da prioridade de conversação a ser alterado. O nome deve recorrer a uma prioridade de conversação no banco de dados atual.

  • SET
    Especifica os critérios para determinar se a prioridade de conversação é aplicável a uma conversação. SET é necessário e deve conter pelo menos um critério: CONTRACT_NAME, LOCAL_SERVICE_NAME, REMOTE_SERVICE_NAME ou PRIORITY_LEVEL.

  • CONTRACT_NAME = {ContractName | ANY}
    Especifica o nome de um contrato a ser usado como critério para determinar se a prioridade de conversação é aplicável a uma conversação. ContractName é um identificador do Mecanismo de Banco de Dados e deve especificar o nome de um contrato no banco de dados atual.

    • ContractName
      Especifica que a prioridade de conversação pode ser aplicada somente em conversações onde a instrução BEGIN DIALOG iniciou a conversação ON CONTRACT ContractName especificada.

    • ANY
      Especifica que a prioridade de conversação pode ser se aplicada em qualquer conversação, seja qual for o contrato utilizado.

    Se CONTRACT_NAME não for especificado, a propriedade de contrato da prioridade de conversação não será alterada.

  • LOCAL_SERVICE_NAME = {LocalServiceName | ANY}
    Especifica o nome de um serviço a ser usado como critério para determinar se a prioridade de conversação é aplicável a um ponto de extremidade de conversação.

    LocalServiceName é um identificador Mecanismo de Banco de Dados e deve especificar o nome de um serviço no banco de dados atual.

    • LocalServiceName
      Especifica que a prioridade de conversação pode ser se aplicada a:

      • Qualquer ponto de extremidade de conversação de iniciador cujo nome de serviço de iniciador corresponda a LocalServiceName.

      • Qualquer ponto de extremidade de conversação de destino cujo nome de serviço de destino corresponda a LocalServiceName.

    • ANY

      • Especifica que a prioridade de conversação pode ser aplicada em qualquer ponto de extremidade de conversação, seja qual for o nome do serviço local usado pelo ponto de extremidade.

    Se LOCAL_SERVICE_NAME não for especificado, a propriedade de serviço local da prioridade de conversação não será alterada.

  • REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
    Especifica o nome de um serviço a ser usado como critério para determinar se a prioridade de conversação é aplicável a um ponto de extremidade de conversação.

    RemoteServiceName é uma literal do tipo nvarchar(256). Service Broker usa uma comparação byte por byte para fazer a correspondência da cadeia de caracteres RemoteServiceName. A comparação diferencia maiúsculas de minúsculas e não considera o agrupamento atual. O serviço de destino pode estar na instância atual do Mecanismo de Banco de Dados ou em uma instância remota do Mecanismo de Banco de Dados.

    • 'RemoteServiceName'
      Especifica que a prioridade de conversação seja atribuída ao seguinte:

      • Qualquer ponto de extremidade de conversação de iniciador cujo nome de serviço de destino associado corresponda a RemoteServiceName.

      • Qualquer ponto de extremidade de conversação de destino cujo nome de serviço de iniciador associado corresponda a RemoteServiceName.

    • ANY
      Especifica que a prioridade de conversação se aplica a qualquer ponto de extremidade de conversação, seja qual for o nome do serviço remoto associado ao ponto de extremidade.

    Se REMOTE_SERVICE_NAME não for especificado, a propriedade de serviço remoto da prioridade de conversação não será alterada.

  • PRIORITY_LEVEL = { PriorityValue | DEFAULT }
    Especifica o nível de prioridade a ser atribuído a qualquer ponto de extremidade de conversação que use os contratos e serviços especificados na prioridade de conversação. PriorityValue deve ser uma literal inteira de 1 (prioridade mais baixa) a 10 (prioridade mais alta).

    Se PRIORITY_LEVEL não for especificado, a propriedade do nível de prioridade da prioridade de conversação não será alterada.

Comentários

Nenhuma propriedade alterada por ALTER BROKER PRIORITY se aplica a conversações existentes. As conversações existentes continuam com a prioridade que foi atribuída quando elas foram iniciadas.

Para obter mais informações, consulte CREATE BROKER PRIORITY (Transact-SQL).

Permissões

Permissão para criar padrões de prioridade de conversação a membros das funções de banco de dados fixas db_ddladmin ou db_owner e à função de servidor fixa sysadmin. Requer a permissão ALTER no banco de dados.

Exemplos

A. Alterando apenas o nível de prioridade de uma prioridade de conversação existente.

Altera o nível de prioridade, mas não altera o contrato, o serviço local ou as propriedades de serviço remoto.

ALTER BROKER PRIORITY SimpleContractDefaultPriority
    FOR CONVERSATION
    SET (PRIORITY_LEVEL = 3);

B. Alterando todas as propriedades de uma prioridade de conversação existente.

Altera o nível de prioridade, o contrato, o serviço local e as propriedades de serviço remoto.

ALTER BROKER PRIORITY SimpleContractPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContractB,
         LOCAL_SERVICE_NAME = TargetServiceB,
         REMOTE_SERVICE_NAME = N'InitiatorServiceB',
         PRIORITY_LEVEL = 8);