ZMIEŃ TRASĘ (Transact-SQL)
Modyfikuje informacji o trasa dla istniejącej trasa.
Składnia
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
Jest nazwą trasa do zmiany.Nie można określić nazwy serwera, bazy danych i schematu.Z
Wprowadzono klauzule, definiujących trasa przeliczana.SERVICE_NAME ='service_name"
Określa nazwę zdalnego usługa wskazuje tej trasa .service_name Musi dokładnie odpowiadać nazwie używa zdalnego usługa .Service BrokerPorównanie bajt po bajcie używa w celu dopasowania service_name.Innymi słowy porównanie jest przypadek wielkość liter i nie uwzględnić bieżące sortowanie.trasa z nazwą usługa SQL/servicebroker/brokerconfiguration" jest trasa Broker ogłoszenia konfiguracji usługa.trasa ta usługa nie może określać broker wystąpienie.W przypadku pominięcia nazwa_usługi klauzula nazwa usługa dla trasa pozostaje niezmieniony.
BROKER_INSTANCE ='broker_instance"
Określa miejsce docelowe usługabazy danych.broker_instance Parametr musi być identyfikator wystąpienie brokera dla zdalnej bazy danych, który można uzyskać, uruchamiając następującą kwerendę w wybranej bazie danych:SELECT service_broker_guid FROM sys.databases WHERE database_id = DB_ID()
Jeżeli pominięto BROKER_INSTANCE klauzula broker wystąpienie dla trasa pozostaje bez zmian.
Okres istnienia **=**route_lifetime
Określa czasw sekundach, który SQL Server zachowuje trasa w tabelaroutingu.Pod koniec okresu istnienia trasa wygaśnie, i SQL Server już uzna trasa podczas wybierania trasa dla nowego konwersacji.W przypadku pominięcia tej klauzula okresu istnienia trasa pozostaje bez zmian.ADDRESS **='**next_hop_address'
Określa adres sieciowy dla tej trasa.next_hop_address Określa adres TCP/IP w następującym formacie:Protokół TCP: / /{ dns_name | netbios_name |adres_IP } : port_number
Określony port_number musi być zgodny z numerem portu Service Broker endpoint wystąpienie SQL Server na określonym komputerze.Można to uzyskać, uruchamiając następującą kwerendę w wybranej bazie danych:
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';
Kiedy trasa Określa "LOKALNĄ" dla next_hop_address, wiadomość zostanie dostarczona do usługa w ramach bieżącego wystąpienie SQL Server.
Kiedy trasa Określa "TRANSPORT" dla next_hop_address, adres sieciowy jest określana na podstawie adresu sieci w nazwie usługa.Określa trasa "TRANSPORT" można określić nazwę lub brokera usługa wystąpienie.
Gdy next_hop_address serwer dublowany dla dublowania bazy danych należy także określić MIRROR_ADDRESS serwer duplikatu.W przeciwnym razie automatycznie pracy awaryjnej serwer duplikatunie tej trasa .
MIRROR_ADDRESS ='next_hop_mirror_address"
Określa adres sieciowy serwer duplikatu lustrzanej pary, w których serwer dublowany jest w next_hop_address.next_hop_mirror_address Określa adres TCP/IP w następującym formacie:Protokół TCP: / /{ dns_name | netbios_name | adres_IP } : port_number
Określony port_number musi być zgodny z numerem portu Service Broker endpoint wystąpienie SQL Server na określonym komputerze.Można to uzyskać, uruchamiając następującą kwerendę w wybranej bazie danych:
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';
Po określeniu MIRROR_ADDRESS trasa należy określić nazwa_usługi klauzula i BROKER_INSTANCE klauzula.Określa trasa "LOKALNĄ" lub "TRANSPORT" dla next_hop_address nie może określić adresu dublowania.
Uwagi
Routing tabela przechowuje trasy jest meta danych tabela , która może być odczytana przez sys.routes katalogu widoku.tabela routingu można zaktualizować tylko poprzez tworzenie MARSZRUT, ZMIEŃ TRASĘ i instrukcji DROP trasy.
Klauzule, które nie są określone w poleceniu zmiany trasy pozostaną niezmienione.Dlatego nie można zmienić trasa do określania trasa jest nie czas , że trasa zgodna dowolną nazwę usługa lub że trasa odpowiada dowolnej broker wystąpienie.Aby zmienić te cechy trasa, należy usunąć istniejącą trasa i utworzyć nowa trasa nowymi informacjami.
Kiedy trasa Określa "TRANSPORT" dla next_hop_address, adres sieciowy jest określana na podstawie nazwy usługa.SQL Serverpomyślnie może przetwarzać nazwy usługa , które zaczynają się od adresu sieciowego w formacie, który jest prawidłowy dla next_hop_address.Usługi o nazwach zawierających adresy sieciowe będą trasa do adresu sieciowego w polu Nazwa usługa .
tabela routingu może zawierać dowolną liczbę tras, które umożliwia określenie tej samej usługa, adres sieciowy i/lub broker identyfikatora wystąpienie .W tym przypadek Service Broker wybiera trasa za pomocą procedury zaprojektowane, aby znaleźć najbardziej dokładne dopasowanie między informacje określone w komunikacji i informacji w tabelaroutingu.Aby uzyskać więcej informacji dotyczących sposobu Service Broker wybiera trasa, zobacz Service BrokerUsługa Routing i sieć.
Zmiany autoryzacji dla usługaza pomocą autoryzacji zmienić instrukcja.
Uprawnienia
Domyślne uprawnienia do zmiany trasa do właściciela trasa, członkowie db_ddladmin lub db_owner stałe role bazy danych i członkowie sysadmin stała rola serwera.
Przykłady
A.Zmiana usługa dla trasa
Poniższy przykład modyfikuje ExpenseRoute trasa do punktu do zdalnej usługa //Adventure-Works.com/Expenses.
ALTER ROUTE ExpenseRoute
WITH
SERVICE_NAME = '//Adventure-Works.com/Expenses'
B.Zmiana miejsce docelowe bazy danych dla trasa
Poniższy przykład przedstawia zmianę miejsce docelowe bazy danych dla ExpenseRoute trasa do bazy danych, identyfikowane przez identyfikator unikatowy D8D4D268-00A3-4C62-8F91-634B89B1E317.
ALTER ROUTE ExpenseRoute
WITH
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317'
C.Zmiana adresu dla trasa
W poniższym przykładzie zmieniany adres sieciowy dla ExpenseRoute trasa do portu TCP 1234 na host o adresie IP 10.2.19.72.
ALTER ROUTE ExpenseRoute
WITH
ADDRESS = 'TCP://10.2.19.72:1234'
D.Zmiana bazy danych i adres dla trasa
W poniższym przykładzie zmieniany adres sieciowy dla ExpenseRoute trasa do portu TCP 1234 na host o nazwie DNS www.Adventure-Works.com.Także zmienia miejsce docelowe bazy danych do bazy danych, identyfikowane przez identyfikator unikatowy D8D4D268-00A3-4C62-8F91-634B89B1E317.
ALTER ROUTE ExpenseRoute
WITH
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317',
ADDRESS = 'TCP://www.Adventure-Works.com:1234'
Zobacz także