Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL ServerAzure
SQL Managed Instance
Upravuje informace o trase pro existující trasu v SQL Server.
Syntax
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' ]
[ ; ]
Argumenty
route_name
Je název trasy, kterou je třeba změnit. Názvy serverů, databází a schémat nelze specifikovat.
WITH
Zavádí klauzule, které definují trasu, která je měněna.
SERVICE_NAME ='service_name'
Specifikuje název vzdálené služby, na kterou tato trasa odkazuje.
service_name musí přesně odpovídat názvu, který vzdálená služba používá. Service Broker používá porovnávání bajtů po bajtech, aby odpovídal service_name. Jinými slovy, srovnání je citlivé na velká písmena a nezohledňuje aktuální kolaci. Trasa s názvem služby 'SQL/ServiceBroker/BrokerConfiguration' je cesta ke službě Broker Configuration Notice. Cesta k této službě nemusí specifikovat instanci brokera.
Pokud je klauzule SERVICE_NAME vynechána, název služby pro trasu zůstává nezměněn.
BROKER_INSTANCE ='broker_instance'
Specifikuje databázi, která hostuje cílovou službu. Parametr broker_instance musí být identifikátor instance brokera pro vzdálenou databázi, který lze získat provedením následujícího dotazu ve vybrané databázi:
SELECT service_broker_guid
FROM sys.databases
WHERE database_id = DB_ID();
Když je klauzule BROKER_INSTANCE vynechána, instance brokera pro trasu zůstává nezměněna.
Note
Tato možnost není k dispozici v obsažené databázi.
CELOŽIVOTNÍ= route_lifetime
Specifikuje čas, který v sekundách SQL Server zachová trasu v směrovací tabulce. Na konci životnosti trasa vyprší a SQL Server již trasu při výběru nové konverzace nebere v úvahu. Pokud je tato klauzule vynechána, životnost trasy zůstává nezměněna.
ADRESA ='next_hop_address'
Pro Azure SQL Managed Instance, ADDRESS musí být lokální.
Specifikuje síťovou adresu pro tuto trasu. next_hop_address specifikuje TCP/IP adresu v následujícím formátu:
TCP:// { dns_name | netbios_name |ip_address } :port_number
Specifikovaný port_number musí odpovídat číslu portu pro Service Broker endpoint instance SQL Server na určeném počítači. To lze získat spuštěním následujícího dotazu ve vybrané databázi:
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';
Když trasa specifikuje 'LOKÁLNÍ' pro next_hop_address, zpráva je doručena službě v aktuální instanci SQL Server.
Když trasa specifikuje 'TRANSPORT' pro next_hop_address, síťová adresa je určena na základě síťové adresy v názvu služby. Trasa, která specifikuje 'TRANSPORT', může specifikovat název služby nebo instanci brokera.
Pokud je next_hop_address hlavním serverem pro databázové zrcadle, musíte také specifikovat MIRROR_ADDRESS pro zrcadlový server. Jinak tato trasa automaticky nepřejde na zrcadlový server.
Note
Tato možnost není k dispozici v obsažené databázi.
MIRROR_ADDRESS ='next_hop_mirror_address'
Specifikuje síťovou adresu zrcadlového serveru zrcadleného páru, jehož hlavní server je na next_hop_address.
next_hop_mirror_address specifikuje TCP/IP adresu v následujícím formátu:
TCP://{ dns_name | netbios_name | ip_address } :port_number
Specifikovaný port_number musí odpovídat číslu portu pro Service Broker endpoint instance SQL Server na určeném počítači. To lze získat spuštěním následujícího dotazu ve vybrané databázi:
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';
Když je MIRROR_ADDRESS specifikován, trasa musí specifikovat SERVICE_NAME klauzuli a BROKER_INSTANCE klauzuli. Trasa, která specifikuje 'LOKÁLNÍ' nebo 'TRANSPORT' pro next_hop_address , nemusí specifikovat zrcadelní adresu.
Note
Tato možnost není k dispozici v obsažené databázi.
Remarks
Směrovací tabulka, která ukládá trasy, je tabulka metadat, kterou lze přečíst prostřednictvím katalogu sys.routes . Směrovací tabulku lze aktualizovat pouze pomocí příkazů CREATE ROUTE, ALTER ROUTE, a DROP ROUTE .
Klauzule, které nejsou v příkazu ALTER ROUTE specifikovány, zůstávají beze změny. Proto nemůžete ALTERem použít trasu, abyste určili, že trasa nevyprší čas, že trasa odpovídá jakémukoli jménu služby nebo že trasa odpovídá jakékoli instanci brokera. Pro změnu těchto charakteristik trasy musíte zrušit stávající trasu a vytvořit novou trasu s novými informacemi.
Když trasa specifikuje 'TRANSPORT' pro next_hop_address, síťová adresa je určena na základě názvu služby. SQL Server dokáže úspěšně zpracovávat názvy služeb začínající síťovou adresou ve formátu platném pro next_hop_address. Služby s názvy obsahujícími platné síťové adresy budou směrovat na síťovou adresu v názvu služby.
Směrovací tabulka může obsahovat libovolný počet tras, které určují stejnou službu, síťovou adresu a/nebo identifikátor instance brokera. V tomto případě Service Broker vybírá trasu pomocí postupu navrženého k nalezení nejpřesnější shody mezi informacemi uvedenými v konverzaci a informacemi v směrovací tabulce.
Pro změnu AUTHORIZATION služby použijte tvrzení.ALTER AUTHORIZATION
Permissions
Oprávnění ke změně trasy je výchozí pro vlastníka trasy, členy db_ddladmin nebo db_owner pevných databázových rolí a členy role pevného správce systému .
Příklady
A. Změna služby pro trasu
Následující příklad upravuje trasu ExpenseRoute tak, aby směřovala na vzdálenou službu //Adventure-Works.com/Expenses.
ALTER ROUTE ExpenseRoute
WITH
SERVICE_NAME = '//Adventure-Works.com/Expenses';
B. Změna cílové databáze pro trasu
Následující příklad mění cílovou databázi pro trasu ExpenseRoute k databázi identifikovanou jedinečným identifikátorem D8D4D268-00A3-4C62-8F91-634B89B1E317.
ALTER ROUTE ExpenseRoute
WITH
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317';
C. Změna adresy pro trasu
Následující příklad mění síťovou adresu pro trasu ExpenseRoute na TCP port 1234 na hostiteli s IP adresou 10.2.19.72.
ALTER ROUTE ExpenseRoute
WITH
ADDRESS = 'TCP://10.2.19.72:1234';
D. Změna databáze a adresy pro trasu
Následující příklad mění síťovou adresu pro trasu ExpenseRoute k TCP portu 1234 na hostiteli s DNS jménem www.Adventure-Works.com. Také mění cílovou databázi na databázi identifikovanou jedinečným identifikátorem D8D4D268-00A3-4C62-8F91-634B89B1E317.
ALTER ROUTE ExpenseRoute
WITH
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317',
ADDRESS = 'TCP://www.Adventure-Works.com:1234';
Viz také
CREATE ROUTE (Transact-SQL)
DROP ROUTE (Transact-SQL)
EVENTDATA (Transact-SQL)