ALTER BROKER PRIORITY (Transact-SQL)

Cambia las propiedades de una prioridad de conversación de Service Broker.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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 el nombre de la prioridad de conversación que se va a modificar. El nombre debe hacer referencia a una prioridad de conversación de la base de datos actual.

  • SET
    Especifica los criterios para determinar si la prioridad de conversación se aplica a una conversación. SET es necesario y debe incluir al menos un criterio: CONTRACT_NAME, LOCAL_SERVICE_NAME, REMOTE_SERVICE_NAME o PRIORITY_LEVEL.

  • CONTRACT_NAME = {ContractName | ANY}
    Especifica el nombre de un contrato que se usará como criterio para determinar si la prioridad de conversación se aplica a una conversación. ContractName es un identificador de Motor de base de datos, y debe especificar el nombre de un contrato de la base de datos actual.

    • ContractName
      Especifica que la prioridad de conversación sólo se puede aplicar a las conversaciones cuya instrucción BEGIN DIALOG que inició la conversación especificó ON CONTRACT ContractName.

    • ANY
      Especifica que la prioridad de conversación se puede aplicar a cualquier conversación, independientemente de qué contrato use.

    Si no se especifica CONTRACT_NAME, la propiedad de contrato de la prioridad de conversación no se modifica.

  • LOCAL_SERVICE_NAME = {LocalServiceName | ANY}
    Especifica el nombre de un servicio que se va a usar como criterio para determinar si la prioridad de conversación se aplica a un extremo de una conversación.

    LocalServiceName es un identificador de Motor de base de datos y debe especificar el nombre de un servicio de la base de datos actual.

    • LocalServiceName
      Especifica que la prioridad de conversación se puede aplicar a lo siguiente:

      • Cualquier extremo iniciador de conversación cuyo nombre de servicio iniciador coincida con LocalServiceName.

      • Cualquier extremo de destino de conversación cuyo nombre de servicio de destino coincida con LocalServiceName.

    • ANY

      • Especifica que la prioridad de conversación se puede aplicar a cualquier extremo de conversación, independientemente del nombre del servicio local utilizado por el extremo.

    Si no se especifica LOCAL_SERVICE_NAME, la propiedad de servicio local de la prioridad de conversación no se modifica.

  • REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
    Especifica el nombre de un servicio que se va a usar como criterio para determinar si la prioridad de conversación se aplica a un extremo de conversación.

    RemoteServiceName es un literal de tipo nvarchar(256). Service Broker utiliza una comparación byte a byte para buscar una coincidencia con la cadena RemoteServiceName. En la comparación se distinguen mayúsculas y minúsculas, y no se considera la intercalación actual. El servicio de destino puede estar en la instancia actual de Motor de base de datos o en una instancia remota de Motor de base de datos.

    • 'RemoteServiceName'
      Especifica la prioridad de conversación que se va a asignar a:

      • Cualquier extremo iniciador de conversación cuyo nombre de servicio de destino asociado coincida con RemoteServiceName.

      • Cualquier extremo de destino de la conversación cuyo nombre de servicio iniciador asociado coincida con RemoteServiceName.

    • ANY
      Especifica que la prioridad de conversación se aplica a cualquier extremo de conversación, independientemente del nombre del servicio remoto asociado al extremo.

    Si no se especifica REMOTE_SERVICE_NAME, la propiedad de servicio remoto de la prioridad de conversación no se modifica.

  • PRIORITY_LEVEL = { PriorityValue | DEFAULT }
    Especifica el nivel de prioridad que se debe asignar a cualquier extremo de conversación que utilice los contratos y servicios indicados en la prioridad de conversación. PriorityValue debe ser un literal entero comprendido entre 1 (prioridad más baja) y 10 (prioridad más alta).

    Si no se especifica PRIORITY_LEVEL, la propiedad de nivel de prioridad no se modifica.

Comentarios

Ninguna de las propiedades modificadas por ALTER BROKER PRIORITY se aplica a las conversaciones existentes. Las conversaciones existentes continúan con la prioridad que les fue asignada cuando se iniciaron.

Para obtener más información, vea CREATE BROKER PRIORITY (Transact-SQL).

Permisos

El permiso para crear una prioridad de conversación recae de forma predeterminada en los miembros de las funciones de base de datos fijas db_ddladmin o db_owner, y en la función fija de servidor sysadmin. Requiere el permiso ALTER en la base de datos.

Ejemplos

A. Cambiar sólo el nivel de prioridad de una prioridad de conversación existente.

Cambia el nivel de prioridad, pero no cambia las propiedades del servicio remoto, el contrato o el servicio local.

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

B. Cambiar todas las propiedades de una prioridad de conversación existente.

Cambia las propiedades de servicio remotas, nivel de prioridad, contrato, servicio local.

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