ALTER SERVICE (Transact-SQL)
Изменяет существующую службу.
Синтаксис
ALTER SERVICE service_name
[ ON QUEUE [ schema_name . ]queue_name ]
[ ( < opt_arg > [ , ...n ] ) ]
[ ; ]
<opt_arg> ::=
ADD CONTRACT contract_name | DROP CONTRACT contract_name
Аргументы
service_name
Имя службы, которую необходимо изменить. Не могут быть указаны имена сервера, базы данных и схемы.ON QUEUE [ schema_name**.** ] queue_name
Определяет новую очередь для этой службы. Компонент Service Broker перемещает все сообщения этой службы из текущей очереди в новую очередь.ADD CONTRACT contract_name
Указывает контракт, добавляемый к набору контрактов, предоставляемому этой службой.DROP CONTRACT contract_name
Указывает контракт, который будет удален из набора контрактов, предоставляемого этой службой. Компонент Service Broker отправляет сообщение об ошибке любым существующим диалогам этой службы, использующим этот контракт.
Замечания
Когда инструкция ALTER SERVICE удаляет контракт из службы, служба перестает быть возможной целью диалогов, использующих этот контракт. Поэтому компонент Service Broker не допускает начала новых диалогов с этой службой по данному контракту. На уже существующие диалоги, использующие этот контракт, изменение не влияет.
Чтобы изменить параметр AUTHORIZATION для службы, следует воспользоваться инструкцией ALTER AUTHORIZATION.
Разрешения
По умолчанию разрешения на изменение службы имеют владелец службы, члены предопределенных ролей базы данных db_ddladmin и db_owner и члены предопределенной роли сервера sysadmin.
Примеры
А. Изменение очереди для службы
В результате выполнения следующего примера служба //Adventure-Works.com/Expenses будет использовать очередь NewQueue.
ALTER SERVICE [//Adventure-Works.com/Expenses]
ON QUEUE NewQueue ;
Б. Добавление нового контракта к службе
В результате выполнения следующего примера службе //Adventure-Works.com/Expenses будет разрешено устанавливать диалоги по контракту //Adventure-Works.com/Expenses.
ALTER SERVICE [//Adventure-Works.com/Expenses]
(ADD CONTRACT [//Adventure-Works.com/Expenses/ExpenseSubmission]) ;
В. Добавление нового контракта к службе, удаление существующего контракта
В результате выполнения следующего примера службе //Adventure-Works.com/Expenses будут разрешено устанавливать диалоги по контракту //Adventure-Works.com/Expenses/ExpenseProcessing и запрещено по контракту //Adventure-Works.com/Expenses/ExpenseSubmission.
ALTER SERVICE [//Adventure-Works.com/Expenses]
(ADD CONTRACT [//Adventure-Works.com/Expenses/ExpenseProcessing],
DROP CONTRACT [//Adventure-Works.com/Expenses/ExpenseSubmission]) ;
См. также