sql server 2005 T-SQL ALTER ROUTE (Transact-SQL)

修改现有路由的路由信息。

主题链接图标 Transact-SQL 语法约定

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' ]
[ ; ]
route_name

要更改的路由的名称。不能指定服务器、数据库和架构名称。

WITH

引入对要更改的路由进行定义的子句。

SERVICE_NAME = ' service_name '

指定此路由指向的远程服务的名称。service_name 必须与远程服务使用的名称完全匹配。Service Broker 将进行逐字节比较来匹配 service_name。换言之,比较时将区分大小写,并且不考虑当前的排序规则。服务名称为 'SQL/ServiceBroker/BrokerConfiguration' 的路由是指向 Broker Configuration Notice 服务的路由。指向此服务的路由不能指定 Broker 实例。

如果省略 SERVICE_NAME 子句,则路由的服务名称保持不变。

BROKER_INSTANCE = ' broker_instance '

指定承载目标服务的数据库。broker_instance 参数必须是远程数据库的 Broker 实例标识符,该标识符可以通过在所选数据库中运行以下查询获得:

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

如果省略 BROKER_INSTANCE 子句,则路由的 Broker 实例保持不变。

LIFETIME = route_lifetime

指定 SQL Server 在路由表中保留路由的时间(秒)。在生存期结束后,相应的路由即过期,SQL Server 在为新会话选择路由时将不再考虑该路由。如果省略此子句,则路由的生存期保持不变。

ADDRESS = ' next_hop_address'

指定此路由的网络地址。next_hop_address 按以下格式指定 TCP/IP 地址:

TCP:// { dns_name | netbios_name | ip_address } : port_number

当路由为 next_hop_address 指定 'LOCAL' 时,消息将传递给当前 SQL Server 实例中的服务。

当路由为 next_hop_address 指定 'TRANSPORT' 时,根据服务名称中的网络地址确定网络地址。指定 'TRANSPORT' 的路由可指定服务名称或 Broker 实例。

如果 next_hop_address 是数据库镜像的主体服务器,则必须同时指定镜像服务器的 MIRROR_ADDRESS。否则,此路由将不能自动向镜像服务器进行故障转移。

MIRROR_ADDRESS = ' next_hop_mirror_address '

指定镜像对的镜像服务器的网络地址,镜像对的主体服务器位于 next_hop_addressnext_hop_mirror_address 按以下格式指定 TCP/IP 地址:

TCP://{ dns_name | netbios_name | ip_address } :?port_number

如果指定了 MIRROR_ADDRESS,则路由必须指定 SERVICE_NAME 子句和 BROKER_INSTANCE 子句。为 next_hop_address 指定 'LOCAL''TRANSPORT' 的路由不能指定镜像地址。

存储路由的路由表是元数据表,此表可通过 sys.routes 目录视图读取。路由表只能通过 CREATE ROUTE、ALTER ROUTE 和 DROP ROUTE 语句进行更新。

未在 ALTER ROUTE 命令中指定的子句保持不变。因此,无法 ALTER 一个路由,以指定此路由未超时、此路由匹配任何服务名称、或此路由匹配任何 Broker 实例。若要更改路由的这些特征,必须删除现有路由,然后使用新的信息创建一个新路由。

当路由为 next_hop_address 指定 'TRANSPORT' 时,将根据服务名称确定网络地址。对于以网络地址开头的服务名称,只要网络地址的格式对 next_hop_address 有效,SQL Server 就可以成功地处理。名称包含有效网络地址的服务将路由到服务名称中的网络地址。

路由表可包含指定相同服务、网络地址和/或 Broker 实例标识符的任意数目的路由。在此情况下,Service Broker 会使用专门的过程,在会话中指定的信息与路由表中的信息之间找出最匹配的项,以此来选择路由。有关 Service Broker 如何选择路由的详细信息,请参阅 Service Broker 路由和网络

若要更改服务的 AUTHORIZATION,请使用 ALTER AUTHORIZATION 语句。

默认情况下,路由的所有者、ddl_admindb_owner 固定数据库角色的成员和 sysadmin 固定服务器角色的成员有权更改路由。

A. 更改路由的服务

以下示例将 ExpenseRoute 路由修改为指向远程服务 //Adventure-Works.com/Expenses

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

B. 更改路由的目标数据库

以下示例将 ExpenseRoute 路由的目标数据库更改为由唯一标识符 D8D4D268-00A3-4C62-8F91-634B89B1E317. 标识的数据库

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

C. 更改路由的地址

以下示例将 ExpenseRoute 路由的网络地址更改为 IP 地址为 10.2.19.72 的主机上的 TCP 端口 1234

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

D. 更改路由的数据库和地址

以下示例将 ExpenseRoute 路由的网络地址更改为 DNS 名称为 www.Adventure-Works.com 的主机上的 TCP 端口 1234,并将目标数据库更改为由唯一标识符 D8D4D268-00A3-4C62-8F91-634B89B1E317 标识的数据库。

ALTER ROUTE ExpenseRoute
WITH
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317',
ADDRESS = 'TCP://www.Adventure-Works.com:1234'
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值