Инструкция ALTER BROKER PRIORITY (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Изменяет свойства приоритета беседы Service Broker.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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 } ]
)
}
[;]
Аргументы
ConversationPriorityName
Имя изменяемого приоритета диалога. Это имя должно ссылаться на приоритет диалога в текущей базе данных.
SET
Задает критерий для определения применимости приоритета к заданному диалогу. Аргумент SET обязателен и должен содержать хотя бы один критерий: CONTRACT_NAME, LOCAL_SERVICE_NAME, REMOTE_SERVICE_NAME или PRIORITY_LEVEL.
CONTRACT_NAME = {ContractName | ANY}
Указывает имя контракта, который будет использоваться в качестве критерия, определяющего применимость приоритета к диалогу. ContractName — это идентификатор ядро СУБД и должен указать имя контракта в текущей базе данных.
ContractName
Указывает, что приоритет может применяться только к диалогам, в которых инструкция BEGIN DIALOG, начинающая диалог, содержит параметр ON CONTRACT ContractName.
ЛЮБАЯ
Указывает, что приоритет может применяться к любому диалогу, независимо от используемого контракта.
Если аргумент CONTRACT_NAME не был указан, то свойство контракта приоритета диалога не изменяется.
LOCAL_SERVICE_NAME = {LocalServiceName | ANY}
Указывает имя службы, которая будет использоваться в качестве критерия для определения применимости приоритета к конечной точке диалога.
LocalServiceName — это идентификатор ядро СУБД и должен указывать имя службы в текущей базе данных.
LocalServiceName
Указывает, что объектом применения приоритета диалога может быть:
любая конечная точка-инициатор диалога, имя вызывающей службы которой соответствует аргументу LocalServiceName;
любая целевая конечная точка диалога, имя целевой службы которой соответствует аргументу LocalServiceName.
ЛЮБАЯ
- Указывает, что приоритет может применяться к любой конечной точке диалога, независимо от имени локальной службы, используемой точкой.
Если аргумент LOCAL_SERVICE_NAME не был указан, то свойство локальной службы приоритета диалога не изменяется.
REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
Указывает имя службы, которая будет использоваться в качестве критерия для определения применимости приоритета к конечной точке диалога.
RemoteServiceName — это литерал типа nvarchar(256). Service Broker использует сравнение байтов по байтам для сопоставления строки RemoteServiceName . При сравнении учитывается регистр и не применяются текущие параметры сортировки. Целевая служба может находиться в текущем экземпляре ядро СУБД или удаленном экземпляре ядро СУБД.
'RemoteServiceName'
Задает приоритет диалога, который будет иметь:
любая конечная точка-инициатор диалога, для которой имя целевой службы совпадает с параметром RemoteServiceName;
любая целевая конечная точка диалога, для которой имя вызывающей службы совпадает с параметром RemoteServiceName.
ЛЮБАЯ
Указывает, что приоритет диалога будет применяться ко всем конечным точкам диалога, вне зависимости от имен удаленных служб, связанных с ними.
Если аргумент REMOTE_SERVICE_NAME не был указан, то свойство удаленной службы приоритета диалога не изменяется.
PRIORITY_LEVEL = { PriorityValue | DEFAULT }
Задает уровень приоритета, который будет присвоен любой конечной точке диалога, использующей контракты и службы, указанные в приоритете диалога. Аргумент PriorityValue должен быть целочисленным литералом в диапазоне от 1 (наименьший приоритет) до 10 (наибольший приоритет).
Если аргумент PRIORITY_LEVEL не был указан, то свойство уровня приоритета для приоритета диалога не изменяется.
Замечания
Свойства, измененные с помощью инструкции ALTER BROKER PRIORITY, не применяются к существующим диалогам. Существующие диалоги будут использовать приоритет, который был задан при их запуске.
Дополнительные сведения см. в статье CREATE BROKER PRIORITY (Transact-SQL).
Разрешения
Разрешение на создание приоритета диалога по умолчанию имеют члены предопределенных ролей базы данных db_ddladmin и db_owner и члены предопределенной роли сервера sysadmin. Необходимо разрешение ALTER в базе данных.
Примеры
А. Изменение только уровня приоритета существующего диалога.
Изменяет уровень приоритета, но не изменяет свойства контракта, локальной службы и удаленной службы.
ALTER BROKER PRIORITY SimpleContractDefaultPriority
FOR CONVERSATION
SET (PRIORITY_LEVEL = 3);
B. Изменение всех свойств приоритета существующего диалога.
Изменяет свойства уровня приоритета, контракта, локальной и удаленной служб.
ALTER BROKER PRIORITY SimpleContractPriority
FOR CONVERSATION
SET (CONTRACT_NAME = SimpleContractB,
LOCAL_SERVICE_NAME = TargetServiceB,
REMOTE_SERVICE_NAME = N'InitiatorServiceB',
PRIORITY_LEVEL = 8);
См. также
CREATE BROKER PRIORITY (Transact-SQL)
DROP BROKER PRIORITY (Transact-SQL)
sys.conversation_priorities (Transact-SQL)