Инструкция ALTER BROKER PRIORITY (Transact-SQL)
Изменяет свойства приоритета диалога компонента Компонент 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 — идентификатор компонента Компонент Database Engine, который должен указывать имя службы в текущей базе данных.ContractName
Указывает, что приоритет может применяться только к диалогам, в которых инструкция BEGIN DIALOG, начинающая диалог, содержит параметр ON CONTRACT ContractName.ANY
Указывает, что данный приоритет может применяться к любому диалогу, независимо от используемого контракта.
Если аргумент CONTRACT_NAME не был указан, то свойство контракта приоритета диалога не изменяется.
LOCAL_SERVICE_NAME = {LocalServiceName | ANY}
Указывает имя службы, которая будет использоваться в качестве критерия для определения применимости приоритета к конечной точке диалога.Аргумент LocalServiceName — это идентификатор компонента Компонент Database Engine; он должен указывать имя службы в текущей базе данных.
LocalServiceName
Указывает, что приоритет диалога может применяться к:любой конечной точке — инициатору диалога, имя вызывающей службы которой соответствует аргументу LocalServiceName;
любой целевой конечной точке диалога, имя целевой службы которой соответствует аргументу LocalServiceName.
ANY
- Указывает, что приоритет может применяться к любой конечной точке диалога, независимо от имени используемой локальной службы.
Если аргумент LOCAL_SERVICE_NAME не был указан, то свойство локальной службы приоритета диалога не изменяется.
REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
Указывает имя службы, которая будет использоваться в качестве критерия для определения применимости приоритета диалога к конечной точке диалога.RemoteServiceName — это литерал типа nvarchar(256). Компонент Компонент Service Broker производит побайтовое сравнение при поиске соответствия строке RemoteServiceName. При сравнении учитывается регистр и не применяются текущие параметры сортировки. Целевая служба может располагаться на текущем экземпляре компонента Компонент Database Engine или на удаленном экземпляре компонента Компонент Database Engine.
'RemoteServiceName'
Задает приоритет диалога, который будет иметь:любая конечная точка — инициатор диалога, имя связанной целевой службы которой соответствует аргументу RemoteServiceName;
любая целевая конечная точка диалога, имя связанной вызывающей службы которой соответствует аргументу RemoteServiceName.
ANY
Указывает, что приоритет диалога будет применяться ко всем конечным точкам диалога, вне зависимости от имен удаленных служб, связанных с ними.
Если аргумент 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);
Б.Изменение всех свойств приоритета существующего диалога.
Изменяет свойства уровня приоритета, контракта, локальной и удаленной служб.
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)