ALTER SERVICE (Transact-SQL)

Применимо к:SQL Server Управляемый экземпляр SQL Azure

Изменяет существующую службу.

Соглашения о синтаксисе 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  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

service_name
Имя службы, которую необходимо изменить. Не могут быть указаны имена сервера, базы данных и схемы.

ON QUEUE [ имя_схемы. ] имя_очереди
Указывает новую очередь для этой службы. 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 ;  

B. Добавление нового контракта к службе

В результате выполнения следующего примера службе //Adventure-Works.com/Expenses будет разрешено устанавливать диалоги по контракту //Adventure-Works.com/Expenses.

ALTER SERVICE [//Adventure-Works.com/Expenses]  
    (ADD CONTRACT [//Adventure-Works.com/Expenses/ExpenseSubmission]) ;  

C. Добавление нового контракта к службе, удаление существующего контракта

В результате выполнения следующего примера службе //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]) ;  

D. Изменение владельца службы

В следующем примере изменяется владелец //Adventure-Works.com/Expenses на пользователя dbo.

ALTER AUTHORIZATION ON SERVICE::[//Adventure-Works.com/Expenses] TO dbo ;
GO

См. также