ALTER SERVICE (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
變更現有的服務。
語法
ALTER SERVICE service_name
[ ON QUEUE [ schema_name . ]queue_name ]
[ ( < opt_arg > [ , ...n ] ) ]
[ ; ]
<opt_arg> ::=
ADD CONTRACT contract_name | DROP CONTRACT contract_name
引數
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