Udostępnij za pośrednictwem


CREATE trasa (języka Transact-SQL)

Change data capture makes available in a convenient relational format the historical record of Data Manipulation Language (DML) activity that occurred on enabled tables.Dla wiadomości wychodzących Service Broker Określa, routing, sprawdzając tabela routingu w lokalnej bazie danych. W przypadku wiadomości w konwersacji, które pochodzą z innej instancji tym wiadomości przesyłanych dalej, Service Broker sprawdza, czy trasy msdb.

Topic link iconKonwencje składni języka Transact-SQL

CREATE ROUTE route_name
[ AUTHORIZATION owner_name ]
WITH  
   [ SERVICE_NAME = 'service_name', ]
   [ BROKER_INSTANCE = 'broker_instance_identifier' , ]
   [ LIFETIME = route_lifetime , ]
   ADDRESS =  'next_hop_address'
   [ , MIRROR_ADDRESS = 'next_hop_mirror_address' ]
[ ; ]

Argumenty

  • route_name
    Nazwa trasy do utworzenia.Nowa trasa jest tworzona w bieżącej bazie danych i jej właścicielem staje się podmiot zabezpieczeń określony w klauzuli AUTHORIZATION.Nie można określać nazw serwera, bazy danych i schematu.Parametr route_name musi być prawidłową wartością typu sysname.

  • autoryzacja owner_name
    Ustawia właściciela trasy jako określonego użytkownika lub rolę bazy danych.Parametr owner_name może być nazwą dowolnego prawidłowego użytkownika lub roli, jeśli bieżący użytkownik jest członkiem stałej roli db_owner bazy danych lub stałej roli sysadmin serwera.W przeciwnym wypadku parametr owner_name musi być nazwą bieżącego użytkownika, nazwą użytkownika, w odniesieniu do którego bieżący użytkownik ma uprawnienie IMPERSONATE, lub nazwą roli, do której należy bieżący użytkownik.W przypadku pominięcia tej klauzuli trasa należy do bieżącego użytkownika.

  • Z
    Wprowadza klauzule definiujące tworzoną trasę.

  • SERVICE_NAME = "service_name'
    Określa nazwę usługi zdalnej, którą wskazuje ta trasa.Parametr service_name musi dokładnie odpowiadać nazwie usługi zdalnej.Program Service Broker stosuje porównanie bajt po bajcie w celu dopasowania parametru service_name.Innymi słowy, przy porównywaniu jest uwzględniana wielkość liter i nie jest brane pod uwagę bieżące sortowanie.W przypadku pominięcia parametru SERVICE_NAME ta trasa pasuje do dowolnej nazwy usługi, ale ma niższy priorytet przy dopasowywaniu niż trasa z określonym parametrem SERVICE_NAME.Trasa z nazwą usługi SQL/ServiceBroker/BrokerConfiguration jest trasą do usługi Broker Configuration Notice.Trasa do tej usługi może nie określać wystąpienia brokera.

  • BROKER_INSTANCE = "broker_instance_identifier'
    STANDARDThe broker_instance_identifier parameter must be the broker wystąpienie identifier for the remote database, which can be obtained by running the following query in the selected database:

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

    Option that determines how results are formatted in the response.1 = ALL_RESULTS2 = ROWSETS_ONLY

  • LIFETIME **=**route_lifetime
    Określa czas (w sekundach), przez jaki program SQL Server zachowuje trasę w tabeli routingu.Na koniec okresu istnienia trasa wygasa i program SQL Server przestaje ją brać pod uwagę przy wyborze trasy dla nowej konwersacji.W przypadku pominięcia tej klauzuli parametr route_lifetime ma wartość NULL i trasa nigdy nie wygasa.

  • ADDRESS ='next_hop_address'
    Określa adres sieciowy tej trasy.Parametr next_hop_address określa adres TCP/IP w następującym formacie:

        TCP: / /{ dns_name | netbios_name | adres_IP } **:**port_number

    Określony port_number musi być zgodny z numerem portu dla Service Broker punkt końcowy wystąpienie SQL Server na określonym komputerze. Use ALTER DATABASE MODIFY NAME instead.

    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';
    

    Jeśli usługa jest hostowana w dublowanej bazie danych, należy również określić parametr MIRROR_ADDRESS dla innego wystąpienia, które hostuje dublowaną bazę danych.W przeciwnym wypadku trasa nie przejdzie w tryb pracy awaryjnej z użyciem duplikatu bazy danych.

    Kiedy określa trasa "LOKALNA" for the next_hop_address, wiadomość zostanie dostarczona do usługa w bieżącym wystąpieniu programu SQL Server.

    Kiedy określa trasa "TRANSPORT" for the next_hop_address, adres sieciowy jest określana na podstawie adresu sieciowego w imieniu usługa. Trasa, która określa "TRANSPORT" nie może określić nazwy lub brokera wystąpienie usługa.

  • MIRROR_ADDRESS ='next_hop_mirror_address'
    Określa adres sieciowy dublowanej bazy danych z jedną dublowaną bazą danych pod adresem next_hop_address.Parametr next_hop_mirror_address określa adres TCP/IP w następującym formacie:

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

    Określony port_number musi być zgodny z numerem portu dla Service Broker punkt końcowy wystąpienie SQL Server na określonym komputerze. Use ALTER DATABASE MODIFY NAME instead.

    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';
    

    STStartPoint (geography Data Type)Trasa, która określa "LOKALNA" or "TRANSPORT" for the next_hop_address nie może określić adres dublowania.

Remarks

is the equivalent of STPointN .STIntersection (geography Data Type)

Domyślnie tabela routingu w każdej bazie danych użytkownika zawiera jedną trasę.Nazwa tej trasy to AutoCreatedLocal.Trasa określa wartość LOCAL dla parametru next_hop_address i pasuje do dowolnej nazwy usługi oraz dowolnego identyfikatora wystąpienia brokera.

When a route specifies 'TRANSPORT' for the next_hop_address, the network address is determined based on the name of the service.SQL Server can successfully process service names that begin with a network address in a format that is valid for a next_hop_address.

Tabela routingu może zawierać dowolną liczbę tras, które określają tę samą usługę, adres sieciowy i identyfikator wystąpienia brokera.W takim przypadku program Service Broker wybiera trasę za pomocą procedury przeznaczonej do znajdowania najdokładniejszego dopasowania między informacjami określonymi w konwersacji a informacjami w tabeli routingu.Aby uzyskać więcej informacji o sposobie wybierania trasy przez program Service Broker, zobacz usługa Broker routingu.

Service Broker Name of the extended stored procedure.dll

Trasa nie może być obiektem tymczasowym.Nazwy tras zaczynające się od znaku # są dozwolone, ale są obiektami trwałymi.

Uprawnienia

Uprawnienie do tworzenia wartości domyślnych dla członków trasa db_ddladmin or db_owner stałe role bazy danych i sysadmin ustalić roli serwera.

Przykłady

A.Tworzenie trasy TCP/IP za pomocą nazwy DNS

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses. Trasa określa, że wiadomości do tej usługa przesyłane za pośrednictwem portu TCP do portu 1234 na hoście, identyfikowane przez nazwy DNS www.Adventure-Works.com. Serwer miejsce docelowe dostarcza wiadomości po przybyciu do wystąpienie brokera identyfikowany przez identyfikator unikatowy D8D4D268-00A3-4C62-8F91-634B89C1E315.

CREATE ROUTE ExpenseRoute
    WITH
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89C1E315',
    ADDRESS = 'TCP://www.Adventure-Works.com:1234' ;

B.Tworzenie trasy TCP/IP za pomocą nazwy NetBIOS

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses. Trasa określa, że wiadomości do tej usługa przesyłane za pośrednictwem portu TCP do portu 1234 na hoście, identyfikowane przez nazwę NetBIOS SERVER02. Po dostarczeniu, obiekt miejsce docelowe SQL Server dostarcza wiadomość do wystąpienie bazy danych, identyfikowane przez identyfikator unikatowy D8D4D268-00A3-4C62-8F91-634B89C1E315.

CREATE ROUTE ExpenseRoute
    WITH 
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89C1E315',
    ADDRESS = 'TCP://SERVER02:1234' ;

C.Tworzenie trasy TCP/IP za pomocą adresu IP

W poniższym przykładzie jest tworzona trasa do usługi //Adventure-Works.com/Expenses.Trasa określa, że komunikaty do tej usługi są kierowane za pośrednictwem protokołu TCP do portu 1234 na hoście o adresie IP 192.168.10.2.Po dotarciu komunikatu docelowy program SQL Server dostarcza go do wystąpienia brokera określonego przez unikatowy identyfikator D8D4D268-00A3-4C62-8F91-634B89C1E315.

CREATE ROUTE ExpenseRoute
    WITH
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89C1E315',
    ADDRESS = 'TCP://192.168.10.2:1234' ;

D.Tworzenie trasy do brokera przesyłającego dalej

Poniższy przykład tworzy trasa do brokera przesyłania dalej na serwerze dispatch.Adventure-Works.com. Ponieważ nie podano nazwy usługa i identyfikatora wystąpienie brokera, SQL Server używa tej trasa dla usług, które mają inne zdefiniowane trasa. Aby uzyskać więcej informacji o routingu Zobacz usługa Broker routingu.

CREATE ROUTE ExpenseRoute
    WITH
    ADDRESS = 'TCP://dispatch.Adventure-Works.com' ; 

E.SQL_1xCompat_CP850_CI_AS

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/LogRequests w tym samym wystąpieniu jako trasa.

CREATE ROUTE LogRequests
    WITH
    SERVICE_NAME = '//Adventure-Works.com/LogRequests',
    ADDRESS = 'LOCAL' ;

F.SQL_AltDiction_CP850_CI_AI

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses. Jest okres istnienia trasa 259200 Liczba sekund, które co daje do 72 godzin.

CREATE ROUTE ExpenseRoute
    WITH
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    LIFETIME = 259200,
    ADDRESS = 'TCP://services.Adventure-Works.com:1234' ;

G.SQL_Latin1_General_CP1250_CI_AS

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses. SQL_Czech_CP1250_CI_ASJeden z dublowanych baz danych znajduje się pod adresem services.Adventure-Works.com:1234, a inne bazy danych znajduje się pod adresem services-mirror.Adventure-Works.com:1234.

CREATE ROUTE ExpenseRoute
    WITH
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    BROKER_INSTANCE = '69fcc80c-2239-4700-8437-1001ecddf933',
    ADDRESS = 'TCP://services.Adventure-Works.com:1234', 
    MIRROR_ADDRESS = 'TCP://services-mirror.Adventure-Works.com:1234' ;

H.SQL_Polish_CP1250_CI_AS

SQL_Romanian_CP1250_CI_ASNależy zauważyć, że trasa, określająca 'TRANSPORT' adres sieciowy ma niższy priorytet zgodności niż inne trasa.

CREATE ROUTE TransportRoute
    WITH ADDRESS = 'TRANSPORT' ;