alter rota (Transact-sql)

Varolan bir rota için rota bilgilerini değiştirir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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

Bağımsız değişkenler

  • route_name
    Değiştirmek için yol adıdır. Sunucu, veritabanı ve şema adı belirtilemez.

  • İLE
    Hangisine rotası tanımlamak yan tümceleri tanıtır.

  • HİZMET_ADI ='service_name'
    Bu yol gösterdiği uzak hizmet adını belirtir. service_nameTam olarak uzak hizmet adı kullanan maç gerekir. Service Brokerbir bayt bayt karşılaştırma eşleştirmek için kullandığı service_name. Diğer bir deyişle, karşılaştırmanın büyük/küçük harf duyarlıdır ve geçerli harmanlama dikkate almaz. Bir hizmet adı bir yol ' sql, ServiceBroker, BrokerConfiguration' Broker yapılandırma bildirimi hizmeti için bir yoldur. Bu hizmet için bir yol değil bir broker örneği belirtebilir.

    HİZMET_ADI yan tümcesi atlanırsa, yol için hizmet adı değişmez.

  • BROKER_INSTANCE ='broker_instance'
    Hedef hizmeti barındıran veritabanını belirtir. broker_instanceParametresi için seçili veritabanındaki aşağıdaki sorguyu çalıştırarak elde edilebilir uzak veritabanı broker örnek tanımlayıcısı olmalıdır:

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

    BROKER_INSTANCE yan tümcesi atlandığında, rota broker örneği değişmez.

    [!NOT]

    Bu seçenek içerilen bir veritabanında kullanılamaz.

  • ÖMÜR **=**route_lifetime
    Zaman, saniye cinsinden belirtir, SQL Serveryol yönlendirme tablosunda korur. Ömrü sonunda, rota sona erer, ve SQL Serverartık yol yeni bir konuşma için bir yol seçerken göz önünde bulundurur. Bu yan tümcesi atlanırsa, yol süresi değişmez.

  • ADDRESS **='**next_hop_address'
    Bu yol için ağ adresini belirtir. next_hop_addressBir TCP/IP adresi aşağıdaki biçimde belirler:

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

    Belirtilen port_numberbağlantı noktası numarasını eşleşmelidir Service Brokeruç örneği SQL Server, belirtilen bilgisayar. Bu seçili veritabanındaki aşağıdaki sorguyu çalıştırarak elde edilebilir:

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

    Ne zaman bir rota belirtir 'Yerel' için next_hop_address, ileti hizmeti içinde geçerli örneğini teslim SQL Server.

    Ne zaman bir rota belirtir 'transport' için next_hop_address, ağ adresi, ağ adresi hizmet adına göre belirlenir. Belirten bir yol 'transport' bir hizmet adı veya broker örneği belirtebilirsiniz.

    Ne zaman next_hop_addressasıl sunucu için veritabanı yansıtma, MIRROR_ADDRESS için yansıtma sunucu belirtmeniz de gerekir. Aksi takdirde, bu yol yansıtma sunucuya Yük devretme otomatik olarak yapar.

    [!NOT]

    Bu seçenek içerilen bir veritabanında kullanılamaz.

  • MIRROR_ADDRESS ='next_hop_mirror_address'
    Bir yansıtılmış çifti olan asıl sunucu ise, yansıtma sunucu ağ adresini belirtir next_hop_address. next_hop_mirror_addressBir TCP/IP adresi aşağıdaki biçimde belirler:

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

    Belirtilen port_numberbağlantı noktası numarasını eşleşmelidir Service Brokeruç örneği SQL Server, belirtilen bilgisayar. Bu seçili veritabanındaki aşağıdaki sorguyu çalıştırarak elde edilebilir:

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

    MIRROR_ADDRESS belirtildiğinde, rota HİZMET_ADI ve BROKER_INSTANCE yan tümcesi belirtmeniz gerekir. Belirten bir yol 'Yerel' veya 'transport' için next_hop_addressbir ayna adres belirtebilir değil.

    [!NOT]

    Bu seçenek içerilen bir veritabanında kullanılamaz.

Açıklamalar

Üzerinden okunabilir bir meta veri tablosu yönlendirme tablosundaki yolları depolar ise sys.routes Katalog görünümü. Yönlendirme tablosu, yalnızca create route, alter rota ve açılan yol deyimleri ile güncelleştirilebilir.

alter route komutunda belirtilen değil yan tümceleri değişmeden kalır. Bu nedenle, bir yol yol değil çıkış saati, yol herhangi bir hizmet adı ile eşleşen veya yol herhangi bir broker örneği ile eşleşen yok belirtmek için değişiklik yapamazsınız. Yolun bu özellikleri değiştirmek için varolan yolu açılan ve yeni bilgilerle yeni bir yol oluşturmanız gerekir.

Ne zaman bir rota belirtir 'transport' için next_hop_address, ağ adresi hizmet adı temel alınarak belirlenir. SQL Serverbir ağ adresi için geçerli olan bir biçimde başlayan hizmet adlarını başarıyla işleyebilir bir next_hop_address. Geçerli ağ adreslerini içeren adlara sahip Hizmetleri, hizmet adı ağ adresine yönlendirir.

Yönlendirme tablosu, aynı hizmeti, ağ adresi belirtin ve/veya örnek tanımlayıcısı komisyoncu yollarının herhangi bir sayı içerebilir. Bu durumda, Service Brokeryönlendirme tablosunda en eşleşme bilgileri arasındaki konuşmada belirtilen bilgileri bulmak için tasarlanmış bir yordam kullanarak bir yol seçer.

Bir hizmeti YETKILENDIRME değiştirmek için alter YETKILENDIRME deyimini kullanın.

İzinler

İçin bir yol değiştirme izni varsayılan rota, üyelerinin sahibi db_ddladmin veya db_owner sabit veritabanı rolleri ve üyeleri sysadmin sunucu rolü.

Örnekler

A.Hizmet için bir yol değiştirme

Aşağıdaki örnek ExpenseRouteyönlendirmek için uzak hizmet noktasına //Adventure-Works.com/Expenses.

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

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

B.Bir yol için hedef veritabanı değiştirme

Aşağıdaki örnek için hedef veritabanı değiştirir ExpenseRoutebenzersiz tanımlayıcısı tarafından tanımlanan veritabanı yoluD8D4D268-00A3-4C62-8F91-634B89B1E317.

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

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

C.Bir yol adresini değiştirme

Aşağıdaki örnek ağ adresini değiştirir ExpenseRouteyol tcp bağlantı noktası 1234IP adresiyle ana 10.2.19.72.

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

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

D.Veritabanı ve bir yol adresini değiştirme

Aşağıdaki örnek ağ adresini değiştirir ExpenseRouteyol tcp bağlantı noktası 1234ana dns adıyla www.Adventure-Works.com. O da benzersiz tanımlayıcısı tarafından tanımlanan veritabanı hedef veritabanı değiştirir D8D4D268-00A3-4C62-8F91-634B89B1E317.

ALTER ROUTE ExpenseRoute
   WITH 
     BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317',
     ADDRESS = 'TCP://www.Adventure-Works.com:1234'

ALTER ROUTE ExpenseRoute
   WITH 
     BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317',
     ADDRESS = 'TCP://www.Adventure-Works.com:1234'

Ayrıca bkz.

Başvuru

ROTA (Transact-sql) oluştur

ROTA (Transact-sql) bırak

eventdata (Transact-sql)