ALTER BROKER PRIORITY (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Ändert die Eigenschaften einer Service Broker-Konversationspriorität.

Transact-SQL-Syntaxkonventionen

Syntax

  
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 } ]  
              )  
}  
[;]  
  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

ConversationPriorityName
Gibt den Namen der zu ändernden Konversationspriorität an. Der Name muss auf eine Konversationspriorität in der aktuellen Datenbank verweisen.

SET
Gibt die Kriterien an, anhand derer bestimmt wird, ob die Konversationspriorität für eine Konversation übernommen wird. SET ist erforderlich und muss mindestens ein Kriterium enthalten: CONTRACT_NAME, LOCAL_SERVICE_NAME, REMOTE_SERVICE_NAME oder PRIORITY_LEVEL.

CONTRACT_NAME = {ContractName | ANY}
Gibt den Namen eines Vertrags an, der als Kriterium für die Festlegung verwendet wird, ob die Konversationspriorität für eine Konversation gelten soll. ContractName ist ein Datenbank-Engine-Bezeichner und muss den Namen eines Vertrags in der aktuellen Datenbank angeben.

ContractName
Gibt an, dass die Konversationspriorität nur für Konversationen übernommen werden kann, bei denen die BEGIN DIALOG-Anweisung, mit der die Konversation gestartet wurde, auf ON CONTRACT ContractName festgelegt ist.

ANY
Gibt an, dass die Konversationspriorität für jede Konversation unabhängig vom verwendeten Vertrag übernommen werden kann.

Wenn CONTRACT_NAME nicht angegeben ist, wird die Eigenschaft für den Vertrag der Konversationspriorität nicht geändert.

LOCAL_SERVICE_NAME = {LocalServiceName | ANY}
Gibt den Namen eines Diensts an, der als Kriterium verwendet werden kann, um zu bestimmen, ob die Konversationspriorität für einen Konversationsendpunkt übernommen wird.

LocalServiceName ist ein Datenbank-Engine-Bezeichner, der den Namen eines Diensts in der aktuellen Datenbank angeben muss.

LocalServiceName
Gibt an, dass die Konversationspriorität für Folgendes übernommen werden kann:

  • Jeder Konversationsendpunkt für den Initiator, dessen Initiatordienstname LocalServiceName entspricht.

  • Jeder Konversationsendpunkt für das Ziel, dessen Zieldienstname LocalServiceName entspricht.

ANY

  • Gibt an, dass die Konversationspriorität unabhängig vom Namen des vom Endpunkt verwendeten lokalen Diensts für jeden Konversationsendpunkt übernommen werden kann.

Wenn LOCAL_SERVICE_NAME nicht angegeben ist, wird die Eigenschaft für den lokalen Dienst der Konversationspriorität nicht geändert.

REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
Gibt den Namen eines Diensts an, der als Kriterium verwendet werden kann, um zu bestimmen, ob die Konversationspriorität für einen Konversationsendpunkt übernommen wird.

RemoteServiceName ist ein Literal vom Typ nvarchar(256). Service Broker verwendet einen bitweisen Vergleich für den Abgleich der RemoteServiceName-Zeichenfolge. Bei dem Vergleich wird die Groß-/Kleinschreibung beachtet, die aktuelle Sortierung hingegen wird nicht berücksichtigt. Der Zieldienst kann in der aktuellen Instanz von Datenbank-Engine oder in einer Remoteinstanz von Datenbank-Engine vorhanden sein.

'RemoteServiceName'
Gibt an, dass die Konversationspriorität Folgendem zugewiesen werden kann:

  • Jeder Konversationsendpunkt für den Initiator, dessen zugeordneter Zieldienstname RemoteServiceName entspricht.

  • Jeder Konversationsendpunkt für das Ziel, dessen zugeordneter Initiatordienstname RemoteServiceName entspricht.

ANY
Gibt an, dass die Konversationspriorität unabhängig vom Namen des dem Endpunkt zugeordneten Remotediensts für jeden Konversationsendpunkt übernommen wird.

Wenn REMOTE_SERVICE_NAME nicht angegeben ist, wird die Eigenschaft für den Remotedienst der Konversationspriorität nicht geändert.

PRIORITY_LEVEL = { PriorityValue | DEFAULT }
Gibt die Prioritätsebene an, die jedem Konversationsendpunkt zugeordnet werden soll, der die Verträge und Dienste verwendet, die für die Konversationspriorität angegeben werden. PriorityValue muss ein ganzahliges Literal zwischen 1 (niedrigste Priorität) und 10 (höchste Priorität) sein.

Wenn PRIORITY_LEVEL nicht angegeben ist, wird die Eigenschaft für die Prioritätsebene der Konversationspriorität nicht geändert.

Hinweise

Keine Eigenschaften, die von ALTER BROKER PRIORITY geändert werden, werden für vorhandene Konversationen übernommen. Die vorhandenen Konversationen werden mit der Priorität fortgesetzt, die beim Starten der Konversationen zugewiesen wurde.

Weitere Informationen finden Sie unter CREATE BROKER PRIORITY (Transact-SQL).

Berechtigungen

Die Berechtigung zum Erstellen einer Konversationspriorität erhalten standardmäßig die Mitglieder der festen Datenbankrolle db_ddladmin oder db_owner und die feste Serverrolle sysadmin. Erfordert die ALTER-Berechtigung für die Datenbank.

Beispiele

A. Ändern der Prioritätsstufe einer vorhandenen Konversationspriorität.

Ändert die Prioritätsebene, nicht hingegen die Eigenschaften für den Vertrag, lokalen Dienst oder Remotedienst.

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

B. Ändern aller Eigenschaften einer vorhandenen Konversationspriorität.

Ändert die Eigenschaften für Prioritätsebene, Vertrag, lokalen Dienst und Remotedienst.

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

Siehe auch

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