ALTER SERVICE (Transact-SQL)
Изменяет существующую службу.
Синтаксические обозначения в 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]) ;
См. также
Справочник
CREATE SERVICE (Transact-SQL)
DROP SERVICE (Transact-SQL)
EVENTDATA (Transact-SQL)
Другие ресурсы
Creating Service Broker Applications