ALTER BROKER PRIORITY (Transact-SQL)

Se aplica a:SQL ServerAzure SQL Managed Instance

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

Convenciones 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 } ]  
              )  
}  
[;]  
  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

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_NAM = {ContractName | ANY}
Especifica el nombre de un contrato que se va a 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 en la base de datos actual.

ContractName
Especifica que la prioridad de conversación solo se puede aplicar a las conversaciones cuya instrucción BEGIN DIALOG que inició la conversación ha especificado 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 de 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 una conversación.

RemoteServiceName es un literal de tipo nvarchar(256). Service Broker usa 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 de iniciador de conversación cuyo nombre de servicio de destino asociado coincida con RemoteServiceName.

  • Cualquier extremo de destino de conversación cuyo nombre de servicio de 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 asigna a cualquier extremo de conversación que utilice los contratos y servicios especificados 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 los roles fijos de base de datos db_ddladmin o db_owner, y en el rol fijo de servidor sysadmin. Requiere el permiso ALTER en la base de datos.

Ejemplos

A. Cambiar solo 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);  

Vea también

CREATE BROKER PRIORITY (Transact-SQL)
DROP BROKER PRIORITY (Transact-SQL)
sys.conversation_priorities (Transact-SQL)