다음을 통해 공유


ALTER SERVICE(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance

기존 서비스를 변경합니다.

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 고정 서버 역할의 멤버로 설정됩니다.

예제

A. 서비스 큐 변경

다음 예에서는 //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

추가 정보