다음을 통해 공유


ALTER BROKER PRIORITY(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance

Service Broker 대화 우선 순위의 속성을 변경합니다.

Transact-SQL 구문 표기 규칙

구문

  
ALTER BROKER PRIORITY ConversationPriorityName  
FOR CONVERSATION  
{ SET ( [ CONTRACT_NAME = {ContractName | ANY } ]  
        [ [ , ] LOCAL_SERVICE_NAME = {LocalServiceName | ANY } ]  
        [ [ , ] REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY } ]  
        [ [ , ] PRIORITY_LEVEL = { PriorityValue | DEFAULT } ]  
              )  
}  
[;]  
  

인수

ConversationPriorityName
변경할 대화 우선 순위의 이름을 지정합니다. 현재 데이터베이스의 대화 우선 순위를 참조하는 이름이어야 합니다.

SET
대화 우선 순위를 대화에 적용할지 여부를 결정하는 조건을 지정합니다. SET은 필수이며 CONTRACT_NAME, LOCAL_SERVICE_NAME, REMOTE_SERVICE_NAME 또는 PRIORITY_LEVEL 조건을 하나 이상 포함해야 합니다.

CONTRACT_NAME = {ContractName | ANY}
대화 우선 순위를 대화에 적용할지 여부를 결정하기 위한 조건으로 사용할 계약 이름을 지정합니다. ContractName은 데이터베이스 엔진 식별자이며 현재 데이터베이스의 계약 이름을 지정해야 합니다.

ContractName
대화를 시작한 BEGIN DIALOG 문에 ON CONTRACT ContractName이 지정된 대화에만 대화 우선 순위가 적용될 수 있도록 지정합니다.

ANY
사용하는 계약에 관계없이 모든 대화에 대화 우선 순위가 적용될 수 있도록 지정합니다.

CONTRACT_NAME을 지정하지 않으면 대화 우선 순위의 계약 속성이 변경되지 않습니다.

LOCAL_SERVICE_NAME = {LocalServiceName | ANY}
대화 엔드포인트에 대화 우선 순위를 적용할지 여부를 결정하는 조건으로 사용될 서비스 이름을 지정합니다.

LocalServiceName은 데이터베이스 엔진 식별자이며 현재 데이터베이스에 있는 서비스의 이름을 지정해야 합니다.

LocalServiceName
대화 우선 순위가 다음 항목에 적용될 수 있도록 지정합니다.

  • 시작자 서비스 이름이 LocalServiceName과 일치하는 모든 시작자 대화 엔드포인트입니다.

  • 대상 서비스 이름이 LocalServiceName과 일치하는 모든 대상 대화 엔드포인트입니다.

ANY

  • 엔드포인트에서 사용하는 로컬 서비스 이름에 관계없이 모든 대화 엔드포인트에 대화 우선 순위가 적용될 수 있도록 지정합니다.

LOCAL_SERVICE_NAME을 지정하지 않으면 대화 우선 순위의 로컬 서비스 속성이 변경되지 않습니다.

REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
대화 엔드포인트에 대화 우선 순위를 적용할지 여부를 결정하는 조건으로 사용될 서비스 이름을 지정합니다.

RemoteServiceNamenvarchar(256) 형식의 리터럴입니다. Service Broker에서는 바이트 단위로 비교하여 일치하는 RemoteServiceName를 찾습니다. 비교 시 대/소문자가 구분되고 현재 데이터 정렬은 고려되지 않습니다. 대상 서비스는 현재 데이터베이스 엔진 인스턴스 또는 원격 데이터베이스 엔진 인스턴스에 있을 수 있습니다.

'RemoteServiceName'
대화 우선 순위가 다음 항목에 적용되도록 지정합니다.

  • 연결된 대상 서비스 이름이 RemoteServiceName과 일치하는 모든 시작자 대화 엔드포인트입니다.

  • 연결된 시작 서비스 이름이 RemoteServiceName과 일치하는 모든 대상 대화 엔드포인트입니다.

ANY
엔드포인트와 연결된 원격 서비스 이름에 관계없이 모든 대화 엔드포인트에 대화 우선 순위가 적용되도록 지정합니다.

REMOTE_SERVICE_NAME을 지정하지 않으면 대화 우선 순위의 원격 서비스 속성이 변경되지 않습니다.

PRIORITY_LEVEL = { PriorityValue | DEFAULT }
대화 우선 순위에 지정된 계약 및 서비스를 사용하는 모든 대화 엔드포인트에 할당할 우선 순위 수준을 지정합니다. PriorityValue는 1(가장 낮은 우선 순위)에서 10(가장 높은 우선 순위) 사이의 정수 리터럴이어야 합니다.

PRIORITY_LEVEL을 지정하지 않으면 대화 우선 순위의 우선 순위 수준 속성이 변경되지 않습니다.

설명

ALTER BROKER PRIORITY를 사용하여 변경한 속성은 기존 대화에 적용되지 않습니다. 기존 대화에는 대화가 시작될 때 할당된 우선 순위가 계속 적용됩니다.

자세한 내용은 CREATE BROKER PRIORITY(Transact-SQL)를 참조하세요.

사용 권한

대화 우선 순위를 만들 수 있는 권한은 기본적으로 db_ddladmin 또는 db_owner 고정 데이터베이스 역할 및 sysadmin 고정 서버 역할의 멤버에게 있습니다. 데이터베이스에 대한 ALTER 권한이 필요합니다.

예제

A. 기존 대화 우선 순위의 우선 순위 수준만 변경

우선 순위 수준을 변경하지만 계약, 로컬 서비스 또는 원격 서비스 속성은 변경하지 않습니다.

ALTER BROKER PRIORITY SimpleContractDefaultPriority  
    FOR CONVERSATION  
    SET (PRIORITY_LEVEL = 3);  

B. 기존 대화 우선 순위의 모든 속성 변경

우선 순위 수준, 계약, 로컬 서비스 및 원격 서비스 속성을 변경합니다.

ALTER BROKER PRIORITY SimpleContractPriority  
    FOR CONVERSATION  
    SET (CONTRACT_NAME = SimpleContractB,  
         LOCAL_SERVICE_NAME = TargetServiceB,  
         REMOTE_SERVICE_NAME = N'InitiatorServiceB',  
         PRIORITY_LEVEL = 8);  

참고 항목

CREATE BROKER PRIORITY(Transact-SQL)
DROP BROKER PRIORITY(Transact-SQL)
sys.conversation_priorities(Transact-SQL)