ALTER ROUTE (Transact-SQL)

Mis à jour : 15 septembre 2007

Modifie les informations relatives à un itinéraire existant.

Icône Lien de rubriqueConventions de la syntaxe Transact-SQL

Syntaxe

ALTER ROUTE route_name
WITH  
  [ SERVICE_NAME = 'service_name' [ , ] ]
  [ BROKER_INSTANCE = 'broker_instance' [ , ] ]
  [ LIFETIME = route_lifetime [ , ] ]
  [ ADDRESS =  'next_hop_address' [ , ] ]
  [ MIRROR_ADDRESS = 'next_hop_mirror_address' ]
[ ; ]

Arguments

  • route_name
    Nom de l'itinéraire à modifier. Vous ne pouvez pas spécifier les noms de serveur, base de données et schéma.
  • WITH
    Introduit les clauses qui définissent l'itinéraire modifié.
  • SERVICE_NAME ='service_name'
    Spécifie le nom du service distant vers lequel pointe cet itinéraire. Le paramètre service_name doit correspondre exactement au nom utilisé par le service distant. Service Broker utilise une comparaison octet par octet pour la concordance avec service_name. La comparaison est donc sensible à la casse et ne tient pas compte du classement actuel. Un itinéraire dont le nom de service est « SQL/ServiceBroker/BrokerConfiguration » est un itinéraire vers un service de notification de la configuration de Service Broker. Un itinéraire vers ce service ne peut pas spécifier d'instance de Service Broker.

    Si la clause SERVICE_NAME est omise, le nom de service pour l'itinéraire reste le même.

  • BROKER_INSTANCE ='broker_instance'
    Spécifie la base de données qui héberge le service cible. Le paramètre broker_instance doit être l'identificateur de l'instance Service Broker pour la base de données distante et peut être obtenu en exécutant la requête ci-après dans la base de données sélectionnée :

    SELECT service_broker_guid
    FROM sys.databases
    WHERE database_id = DB_ID()
    

    Si la clause BROKER_INSTANCE est omise, l'instance de Service Broker pour l'itinéraire reste la même.

  • LIFETIME **=**route_lifetime
    Spécifie la durée, en secondes, pendant laquelle SQL Server conserve l'itinéraire dans la table de routage. Lorsque la durée de vie expire, l'itinéraire expire et SQL Server n'en tient plus compte lors de la sélection d'un itinéraire pour une nouvelle conversation. Si cette clause est omise, la durée de vie de l'itinéraire reste la même.
  • ADDRESS **='**next_hop_address'
    Spécifie l'adresse réseau pour cet itinéraire. Le paramètre next_hop_address spécifie une adresse TCP/IP au format suivant :

    TCP:// { nom_dns | nom_netbios|adresse_ip } : numéro_port

    Le numéro_port spécifié doit correspondre au numéro de port du point de terminaison de Service Broker pour une instance SQL Server sur l'ordinateur spécifié. Ce résultat peut être obtenu en exécutant la requête suivante dans la base de données sélectionnée :

    SELECT tcpe.port
    FROM sys.tcp_endpoints AS tcpe
    INNER JOIN sys.service_broker_endpoints AS ssbe
       ON ssbe.endpoint_id = tcpe.endpoint_id
    WHERE ssbe.name = N'MyServiceBrokerEndpoint';
    

    Si un itinéraire spécifie 'LOCAL' pour le paramètre next_hop_address, le message est remis à un service de l'instance actuelle de SQL Server.

    Si un itinéraire spécifie 'TRANSPORT' pour le paramètre next_hop_address, l'adresse réseau est déterminée en fonction de l'adresse réseau spécifiée dans le nom du service. Un itinéraire qui spécifie 'TRANSPORT' spécifie un nom de service ou d'instance Service Broker.

    Lorsque next_hop_address est le serveur principal d'une base de données miroir, vous devez également spécifier la clause MIRROR_ADDRESS pour le serveur miroir. Sinon, cet itinéraire ne bascule pas automatiquement sur le serveur miroir.

  • MIRROR_ADDRESS ='next_hop_mirror_address'
    Spécifie l'adresse réseau pour le serveur miroir d'une paire mise en miroir dont le serveur principal se trouve à l'adresse next_hop_address. Le paramètre next_hop_mirror_address spécifie une adresse TCP/IP au format suivant :

    TCP://{ nom_dns | nom_netbios | adresse_ip } : numéro_port

    Le numéro_port spécifié doit correspondre au numéro de port du point de terminaison de Service Broker pour une instance SQL Server sur l'ordinateur spécifié. Ce résultat peut être obtenu en exécutant la requête suivante dans la base de données sélectionnée :

    SELECT tcpe.port
    FROM sys.tcp_endpoints AS tcpe
    INNER JOIN sys.service_broker_endpoints AS ssbe
       ON ssbe.endpoint_id = tcpe.endpoint_id
    WHERE ssbe.name = N'MyServiceBrokerEndpoint';
    

    Si la clause MIRROR_ADDRESS est spécifiée, l'itinéraire doit spécifier les clauses SERVICE_NAME et BROKER_INSTANCE. Un itinéraire qui spécifie 'LOCAL' ou 'TRANSPORT' pour le paramètre next_hop_address ne peut pas spécifier une adresse miroir.

Notes

La table de routage qui stocke les itinéraires est une table de métadonnées. Elle peut être lue par le biais de l'affichage catalogue sys.routes. Cette table de routage peut être mise à niveau uniquement à l'aide des instructions CREATE ROUTE, ALTER ROUTE et DROP ROUTE.

Les clauses qui ne sont pas spécifiées dans la commande ALTER ROUTE restent inchangées. Par conséquent, il n'est pas possible de MODIFIER un itinéraire pour spécifier que ce dernier n'expire pas, qu'il correspond à n'importe quel nom de service ou à n'importe quelle instance de Service Broker. Pour modifier ces caractéristiques d'un itinéraire, vous devez supprimer l'itinéraire existant et en créer un nouveau avec les informations mises à jour.

Lorsqu'un itinéraire spécifie 'TRANSPORT' pour le paramètre next_hop_address, l'adresse réseau est déterminée en fonction du nom du service. SQL Server traite les noms de services qui commencent par une adresse réseau dans un format valide pour next_hop_address. Les services dont les noms contiennent des adresses réseau valides seront acheminés vers l'adresse réseau spécifiée dans le nom de service.

La table de routage peut contenir un nombre illimité d'itinéraires qui spécifient les mêmes service, adresse réseau et/ou identificateur d'instance de Service Broker. Dans ce cas, Service Broker sélectionne un itinéraire à l'aide d'une procédure conçue pour rechercher la correspondance la plus précise entre les informations spécifiées dans la conversation et celles de la table de routage. Pour plus d'informations sur la sélection d'un itinéraire par Service Broker , consultez Réseau et routage Service Broker.

L'instruction ALTER AUTHORIZATION permet de modifier l'AUTORISATION pour un service.

Autorisations

L'autorisation de modifier un itinéraire est octroyée par défaut au propriétaire de l'itinéraire, aux membres des rôles de base de données fixes db_ddladmin ou db_owner et aux membres du rôle serveur fixe sysadmin.

Exemple

A. Modification du service d'un itinéraire

L'exemple suivant l'itinéraire ExpenseRoute et le fait pointer vers le service distant //Adventure-Works.com/Expenses.

ALTER ROUTE ExpenseRoute
   WITH 
     SERVICE_NAME = '//Adventure-Works.com/Expenses'

B. Modification de la base de données cible d'un itinéraire

L'exemple suivant change la base de données cible de l'itinéraire ExpenseRoute en base de données identifiée par l'identificateur unique D8D4D268-00A3-4C62-8F91-634B89B1E317..

ALTER ROUTE ExpenseRoute
   WITH 
     BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317'

A. Modification de l'adresse d'un itinéraire

L'exemple suivant change l'adresse réseau de l'itinéraire ExpenseRoute en port TCP 1234 sur l'hôte dont l'adresse IP est 10.2.19.72.

ALTER ROUTE ExpenseRoute 
   WITH 
     ADDRESS = 'TCP://10.2.19.72:1234'

A. Modification de la base de données et de l'adresse d'un itinéraire

L'exemple suivant change l'adresse réseau de l'itinéraire ExpenseRoute en port TCP 1234 sur l'hôte dont le nom DNS est www.Adventure-Works.com et change la base de données cible en base de données identifiée par l'identificateur unique D8D4D268-00A3-4C62-8F91-634B89B1E317.

ALTER ROUTE ExpenseRoute
   WITH 
     BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317',
     ADDRESS = 'TCP://www.Adventure-Works.com:1234'

Voir aussi

Référence

CREATE ROUTE (Transact-SQL)
DROP ROUTE (Transact-SQL)
EVENTDATA (Transact-SQL)

Autres ressources

Routage Service Broker

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

15 septembre 2007

Contenu modifié :
  • Ajout d'exemples de requêtes montrant comment rechercher des adresses de port de point de terminaison pour les arguments ADDRESS et MIRROR_ADDRESS.