ALTER SERVICE (Transact-SQL)

Modifie un service existant.

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

Syntaxe

ALTER SERVICE service_name 
   [ ON QUEUE [ schema_name . ]queue_name ] 
   [ ( < opt_arg > [ , ...n ] ) ]
[ ; ]

<opt_arg> ::=
   ADD CONTRACT contract_name | DROP CONTRACT contract_name

Arguments

  • service_name
    Nom du service à modifier. Vous ne pouvez pas spécifier les noms de serveur, de base de données et de schéma.

  • ON QUEUE [ schema_name**.** ] queue_name
    Spécifie la nouvelle file d'attente de ce service. Service Broker déplace tous les messages destinés à ce service de la file d'attente actuelle à la nouvelle file d'attente.

  • ADD CONTRACT contract_name
    Spécifie un contrat à ajouter à l'ensemble de contrats exposé par ce service.

  • DROP CONTRACT contract_name
    Spécifie un contrat à supprimer de l'ensemble de contrats exposé par ce service. Service Broker envoie un message d'erreur sur toutes les conversations existantes avec ce service qui utilisent ce contrat.

Notes

Lorsque l'instruction ALTER SERVICE supprime un contrat d'un service, ce dernier ne peut plus être la destination des conversations qui utilisent ce contrat. Par conséquent, Service Broker n'autorise aucune nouvelle conversation avec le service sur ce contrat. Les conversations existantes qui utilisent le contrat ne sont pas affectées.

Pour modifier AUTHORIZATION pour un service, utilisez l'instruction ALTER AUTHORIZATION.

Autorisations

Par défaut, l'autorisation de modification d'un service est octroyée au propriétaire de ce service, 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.

Exemples

A. Modification de la file d'attente d'un service

L'exemple suivant modifie le service //Adventure-Works.com/Expenses pour qu'il utilise la file d'attente NewQueue.

ALTER SERVICE [//Adventure-Works.com/Expenses]
    ON QUEUE NewQueue ;

B. Ajout d'un nouveau contrat au service

L'exemple suivant modifie le service //Adventure-Works.com/Expenses pour qu'il autorise les dialogues sur le contrat //Adventure-Works.com/Expenses.

ALTER SERVICE [//Adventure-Works.com/Expenses]
    (ADD CONTRACT [//Adventure-Works.com/Expenses/ExpenseSubmission]) ;

C. Ajout d'un nouveau contrat au service et suppression du contrat existant

L'exemple suivant modifie le service //Adventure-Works.com/Expenses pour qu'il autorise les dialogues sur le contrat //Adventure-Works.com/Expenses/ExpenseProcessing et qu'il les interdise sur le contrat //Adventure-Works.com/Expenses/ExpenseSubmission.

ALTER SERVICE [//Adventure-Works.com/Expenses]
    (ADD CONTRACT [//Adventure-Works.com/Expenses/ExpenseProcessing], 
     DROP CONTRACT [//Adventure-Works.com/Expenses/ExpenseSubmission]) ;