Поделиться через


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)