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

Справка и поддержка

Получение помощи по SQL Server 2005