ALTER SERVICE (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed Instance

既存のサービスを変更します。

Transact-SQL 構文表記規則

構文

ALTER SERVICE service_name   
   [ ON QUEUE [ schema_name . ]queue_name ]   
   [ ( < opt_arg > [ , ...n ] ) ]  
[ ; ]  
  
<opt_arg> ::=  
   ADD CONTRACT contract_name | DROP CONTRACT contract_name  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

service_name
変更するサービス名を指定します。 サーバー名、データベース名、スキーマ名は指定できません。

ON QUEUE [ schema_name. ] queue_name
このサービス用の新しいキューを指定します。 このサービス用のすべてのメッセージは、Service Broker によって現在のキューから新しいキューに移動されます。

ADD CONTRACT contract_name
このサービスで公開されるコントラクト セットに追加するコントラクトを指定します。

DROP CONTRACT contract_name
このサービスで公開されるコントラクト セットから削除するコントラクトを指定します。 このコントラクトを使用するサービスとのメッセージ交換が存在する場合、Service Broker によってエラー メッセージが送信されます。

注釈

ALTER SERVICE ステートメントによってサービスからコントラクトが削除されると、サービスは、このコントラクトを使用するメッセージ交換の対象から除外されます。 したがって、Service Broker では削除対象のコントラクトを使用するサービスとの新しいメッセージ交換は許可されません。 このコントラクトを使用する既存のメッセージ交換に影響はありません。

サービスの AUTHORIZATION を変更するには、ALTER AUTHORIZATION ステートメントを使用します。

アクセス許可

サービスを変更する権限は、既定では、サービスの所有者、db_ddladmin または db_owner 固定データベース ロールのメンバー、および sysadmin 固定サーバー ロールのメンバーに与えられています。

A. サービスのキューを変更する

次の例では、キュー //Adventure-Works.com/Expenses を使用するよう、NewQueue サービスを変更します。

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

B. サービスに新しいコントラクトを追加する

次の例では、コントラクト //Adventure-Works.com/Expenses のダイアログを許可するよう、//Adventure-Works.com/Expenses サービスを変更します。

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

C. サービスに新しいコントラクトを追加し、既存のコントラクトを削除する

次の例では、コントラクト //Adventure-Works.com/Expenses のダイアログを許可し、コントラクト //Adventure-Works.com/Expenses/ExpenseProcessing のダイアログを禁止するよう、//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]) ;  

D. サービスの所有者を変更する

次の例では、//Adventure-Works.com/Expenses の所有者を dbo ユーザーに変更します。

ALTER AUTHORIZATION ON SERVICE::[//Adventure-Works.com/Expenses] TO dbo ;
GO

関連項目