ALTER BROKER PRIORITY (Transact-SQL)
Si applica a: SQL Server Istanza gestita di SQL di Azure
Modifica le proprietà di una priorità di conversazione di Service Broker.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
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 } ]
)
}
[;]
Argomenti
ConversationPriorityName
Specifica il nome della priorità di conversazione da modificare. Il nome deve fare riferimento a una priorità di conversazione nel database corrente.
SET
Specifica i criteri per determinare se la priorità di conversazione si applica a una conversazione. L'argomento SET è obbligatorio e deve contenere almeno un criterio: CONTRACT_NAME, LOCAL_SERVICE_NAME, REMOTE_SERVICE_NAME o PRIORITY_LEVEL.
CONTRACT_NAME = {ContractName | ANY}
Viene specificato il nome di un contratto da utilizzare come criterio per determinare se la priorità di conversazione si applica a una conversazione. ContractName è un identificatore del motore di database e deve specificare il nome di un contratto nel database corrente.
ContractName
Specifica che la priorità di conversazione può essere applicata solo alle conversazioni dove l'istruzione BEGIN DIALOG che ha avviato la conversazione ha specificato il valore ON CONTRACT ContractName.
QUALSIASI
Specifica che la priorità di conversazione può essere applicata a qualsiasi conversazione, indipendentemente dal contratto utilizzato.
Se CONTRACT_NAME non è specificato, la proprietà del contratto relativa alla priorità di conversazione non viene modificata.
LOCAL_SERVICE_NAME = {LocalServiceName | ANY}
Specifica il nome di un servizio da utilizzare come criterio per determinare se la priorità di conversazione si applica a un endpoint di conversazione.
LocalServiceName è un identificatore del motore di database e deve specificare il nome di un servizio nel database corrente.
LocalServiceName
Specifica che la priorità di conversazione può essere applicata agli elementi seguenti:
Qualsiasi endpoint di conversazione dell'initiator il cui nome del servizio Initiator corrisponde a LocalServiceName.
Qualsiasi endpoint di conversazione di destinazione il cui nome del servizio di destinazione corrisponde a LocalServiceName.
QUALSIASI
- Specifica che la priorità di conversazione può essere applicata a qualsiasi endpoint di conversazione, indipendentemente dal nome del servizio locale utilizzato dall'endpoint.
Se LOCAL_SERVICE_NAME non è specificato, la proprietà del servizio locale relativa alla priorità di conversazione non viene modificata.
REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
Specifica il nome di un servizio da utilizzare come criterio per determinare se la priorità di conversazione si applica a un endpoint di conversazione.
RemoteServiceName è un valore letterale di tipo nvarchar(256). Service Broker usa un confronto byte per byte per trovare la corrispondenza con la stringa RemoteServiceName. Nel confronto viene fatta distinzione tra maiuscole e minuscole e non vengono considerate le regole di confronto correnti. Il servizio di destinazione può trovarsi nell'istanza corrente o in un'istanza remota del motore di database.
'RemoteServiceName'
Specifica la priorità di conversazione da assegnare agli elementi seguenti:
Qualsiasi endpoint di conversazione dell'initiator il cui nome del servizio di destinazione associato corrisponde a RemoteServiceName.
Qualsiasi endpoint di conversazione di destinazione il cui nome del servizio dell'initiator associato corrisponde a RemoteServiceName.
QUALSIASI
Specifica che la priorità di conversazione si applica a qualsiasi endpoint di conversazione, indipendentemente dal nome del servizio remoto associato all'endpoint.
Se REMOTE_SERVICE_NAME non è specificato, la proprietà del servizio remoto relativa alla priorità di conversazione non viene modificata.
PRIORITY_LEVEL = { PriorityValue | DEFAULT }
Specifica il livello di priorità da assegnare a qualsiasi endpoint di conversazione che utilizza i contratti e servizi specificati nella priorità di conversazione. PriorityValue deve essere un valore letterale intero compreso tra 1 (priorità più bassa) e 10 (priorità più elevata).
Se PRIORITY_LEVEL non è specificato, la proprietà del livello di priorità relativa alla priorità di conversazione non viene modificata.
Osservazioni:
Nessuna delle proprietà modificate da ALTER BROKER PRIORITY viene applicata alle conversazioni esistenti. Le conversazioni esistenti continuano con la priorità assegnata al momento dell'avvio.
Per altre informazioni, vedere CREATE BROKER PRIORITY (Transact-SQL).
Autorizzazioni
L'autorizzazione per la creazione di una priorità di conversazione viene assegnata per impostazione predefinita ai membri del ruolo predefinito del database db_ddladmin o db_owner e al ruolo predefinito del server sysadmin. È richiesta l'autorizzazione ALTER per il database.
Esempi
R. Modifica esclusivamente del livello di priorità di una priorità di conversazione esistente.
Modifica il livello di priorità, ma non modifica le proprietà del contratto, del servizio locale o del servizio remoto.
ALTER BROKER PRIORITY SimpleContractDefaultPriority
FOR CONVERSATION
SET (PRIORITY_LEVEL = 3);
B. Modifica di tutte le proprietà di una priorità di conversazione esistente.
Modifica il livello di priorità e le proprietà del contratto, del servizio locale e del servizio remoto.
ALTER BROKER PRIORITY SimpleContractPriority
FOR CONVERSATION
SET (CONTRACT_NAME = SimpleContractB,
LOCAL_SERVICE_NAME = TargetServiceB,
REMOTE_SERVICE_NAME = N'InitiatorServiceB',
PRIORITY_LEVEL = 8);
Vedi anche
CREATE BROKER PRIORITY (Transact-SQL)
DROP BROKER PRIORITY (Transact-SQL)
sys.conversation_priorities (Transact-SQL)