ZMIEŃ TRASĘ (Transact-SQL)

Modyfikuje informacji o trasa dla istniejącej trasa.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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'