ALTER BROKER PRIORITY (Transact-SQL)

變更 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 是 Database Engine 識別項,而且必須指定目前資料庫中的合約名稱。

    • ContractName
      指定交談優先權只能套用到啟動交談的 BEGIN DIALOG 陳述式指定了 ON CONTRACT ContractName 的交談上。

    • ANY
      指定交談優先權可以套用到任何交談,不論它使用哪一個合約。

    如果未指定 CONTRACT_NAME,則此交談優先權的合約屬性將不會變更。

  • LOCAL_SERVICE_NAME = {LocalServiceName | ANY}
    指定用來判斷交談優先權是否套用到交談端點之準則的服務名稱。

    LocalServiceName 為 Database Engine 識別項,而且必須指定目前資料庫中的服務名稱。

    • LocalServiceName
      指定交談優先權可以套用到以下項目:

      • 起始端服務名稱符合 LocalServiceName 的任何起始端交談端點。

      • 目標服務名稱符合 LocalServiceName 的任何目標交談端點。

    • ANY

      • 指定交談優先權可以套用到任何交談端點,不論此端點使用的本機服務名稱為何。

    如果未指定 LOCAL_SERVICE_NAME,則此交談優先權的本機服務屬性將不會變更。

  • REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
    指定用來判斷交談優先權是否套用到交談端點之準則的服務名稱。

    RemoteServiceName 是 nvarchar(256) 類型的常值。 Service Broker 會利用逐位元組的比較方式來比對 RemoteServiceName 字串。 這項比較會區分大小寫,且不會考慮目前的定序。 目標服務可以在目前的 Database Engine 執行個體或遠端 Database Engine 執行個體中。

    • '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_ddladmindb_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)