Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği
SQL Server'daki mevcut bir rota için rota bilgisini değiştirir.
Transact-SQL söz dizimi kuralları
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' ]
[ ; ]
Arguments
route_name
Değiştirilecek güzergahın adı bu. Sunucu, veritabanı ve şema adları belirtilemez.
WITH
Değiştirilen güzergahı tanımlayan maddeleri tanıtır.
SERVICE_NAME ='service_name'
Bu güzergahın işaret ettiği uzak hizmetin adını belirtir.
service_name, uzaktan servisin kullandığı isimle tam olarak eşleşmelidir. Service Broker, service_name eşleştirmek için bayt bayt karşılaştırma kullanır. Başka bir deyişle, karşılaştırma büyük harf duyarlıdır ve mevcut derleme dikkate alınmaz.
'SQL/ServiceBroker/BrokerConfiguration' hizmet adıyla bir rota, Broker Yapılandırma Bildirimi hizmetine giden bir yoldur. Bu hizmete giden bir yol aracı örneği belirtmeyebilir.
SERVICE_NAME maddesi çıkarılırsa, güzergahın hizmet adı değişmez.
BROKER_INSTANCE ='broker_instance'
Hedef servisi barındıran veritabanını belirtir.
broker_instance parametresi, seçilen veritabanında aşağıdaki sorgu çalıştırılarak elde edilebilecek uzak veritabanı için aracı örnek tanımlayıcısı olmalıdır:
SELECT service_broker_guid
FROM sys.databases
WHERE database_id = DB_ID();
BROKER_INSTANCE maddesi çıkarıldığında, rota için broker örneği değişmemiştir.
Note
Bu seçenek, kapalı bir veritabanında mevcut değildir.
ÖMÜR =BOYU route_lifetime
SQL Server'ın rotayı yönlendirme tablosunda tuttuğu süreyi saniye cinsinden belirtir. Ömrün sonunda, rota süresi dolur ve SQL Server yeni bir konuşma için rota seçerken rotayı dikkate almaz. Bu madde çıkarılırsa, güzergahın ömrü değişmez.
ADRES ='next_hop_address'
Azure SQL Yönetilen Örneği için, ADDRESS yerel olmalıdır.
Bu rota için ağ adresini belirtir. next_hop_address, aşağıdaki formatta bir TCP/IP adresi belirtir:
TCP:// { dns_name | netbios_name |ip_address } :port_number
Belirtilen port_number, belirtilen bilgisayardaki bir SQL Server örneğinin Service Broker uç noktasının port numarasıyla eşleşmelidir. Bu, seçilen veritabanında aşağıdaki sorgu çalıştırılarak 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';
Bir rota next_hop_addressiçin 'LOCAL' belirttiğinde, mesaj mevcut SQL Server örneği içindeki bir hizmete iletilir.
Bir rota next_hop_address için 'TRANSPORT' belirttiğinde, ağ adresi hizmetin adındaki ağ adresine göre belirlenir. 'TRANSPORT' belirten bir güzergah bir hizmet adı veya aracı örneği belirtebilir.
next_hop_address veritabanı aynası için ana sunucu olduğunda, ayna sunucusu için MIRROR_ADDRESS de belirtmeniz gerekir. Aksi takdirde, bu yol otomatik olarak aynalı sunucuya geçiş yapmaz.
Note
Bu seçenek, kapalı bir veritabanında mevcut değildir.
MIRROR_ADDRESS ='next_hop_mirror_address'
Ana sunucusu next_hop_address'de bulunan aynalı çiftin aynalı sunucusunun ağ adresini belirtir.
next_hop_mirror_address, aşağıdaki formatta bir TCP/IP adresi belirtir:
TCP://{ dns_name | netbios_name | ip_address } :port_number
Belirtilen port_number, belirtilen bilgisayardaki bir SQL Server örneğinin Service Broker uç noktasının port numarasıyla eşleşmelidir. Bu, seçilen veritabanında aşağıdaki sorgu çalıştırılarak 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';
MIRROR_ADDRESS belirtildiğinde, rota SERVICE_NAME ve BROKER_INSTANCE maddesini belirtmelidir. next_hop_addressiçin 'LOCAL' veya 'TRANSPORT' belirten bir güzergah ayna adresi belirtmeyebilir.
Note
Bu seçenek, kapalı bir veritabanında mevcut değildir.
Remarks
Rotaları depolayan yönlendirme tablosu, sys.routes katalog görünümü üzerinden okunabilen bir meta veri tablosudur. Yönlendirme tablosu yalnızca , CREATE ROUTE, ve ALTER ROUTE ifadeleri aracılığıyla DROP ROUTEgüncellenebilir.
Komutta ALTER ROUTE belirtilmemiş maddeler ise değişmeden kalır. Bu nedenle, bir rotayı ROTA'nın zaman aşımına uğramadığını, rotanın herhangi bir hizmet adıyla eşleştiğini veya herhangi bir aracı örnekle eşleştiğini belirtmek için DEĞIŞTIREMEZSINIZ. Bir güzergahın bu özelliklerini değiştirmek için mevcut güzergahı bırakıp yeni bilgilerle yeni bir rota oluşturmalısınız.
Bir güzergah next_hop_addressiçin 'TRANSPORT' belirttiğinde, ağ adresi hizmetin adına göre belirlenir. SQL Server, bir ağ adresiyle başlayan hizmet isimlerini, bir next_hop_address için geçerli bir formatta başarıyla işleyebilir. Geçerli ağ adresleri içeren isimlere sahip servisler, hizmet adındaki ağ adresine yönlendirilir.
Rot tablosu, aynı hizmet, ağ adresi ve/veya aracı görev tanımlayıcısını belirten herhangi sayıda rotayı içerebilir. Bu durumda, Service Broker, konuşmada belirtilen bilgiler ile yönlendirme tablosunda belirtilen bilgiler arasında en kesin eşleşmeyi bulmak için tasarlanmış bir prosedür kullanarak bir rota seçer.
Bir hizmet için değiştirmek AUTHORIZATION için şu ifadeyi ALTER AUTHORIZATION kullanın.
Permissions
Bir rotayı değiştirme izni, rotanın sahibine, db_ddladmin veya db_owner sabit veritabanı rollerinin üyelerine ve sistem yöneticisi sabit sunucu rolünün üyelerine aitti.
Examples
A. Bir güzergah için hizmetin değiştirilmesi
Aşağıdaki örnek, güzergahı ExpenseRoute uzaktan servise //Adventure-Works.com/Expensesişaret edecek şekilde değiştirir.
ALTER ROUTE ExpenseRoute
WITH
SERVICE_NAME = '//Adventure-Works.com/Expenses';
B. Bir rota için hedef veritabanının değiştirilmesi
Aşağıdaki örnek, benzersiz tanımlayıcı tarafından tanımlanan veritabanına giden yol için hedef veritabanını ExpenseRoute değiştirir D8D4D268-00A3-4C62-8F91-634B89B1E317.
ALTER ROUTE ExpenseRoute
WITH
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317';
C. Bir güzergah adresinin değiştirilmesi
Aşağıdaki örnek, IP adresine 10.2.19.72sahip ana bilgisayardaki TCP portuna 1234 giden rota için ağ ExpenseRoute adresini değiştirir.
ALTER ROUTE ExpenseRoute
WITH
ADDRESS = 'TCP://10.2.19.72:1234';
D. Bir güzergah için veritabanı ve adresin değiştirilmesi
Aşağıdaki örnek, ana bilgisayardaki TCP portuna 1234 giden rota ağ adresini ExpenseRoute DNS adıyla www.Adventure-Works.comdeğiştirir. Ayrıca hedef veritabanını, benzersiz tanımlayıcı D8D4D268-00A3-4C62-8F91-634B89B1E317tarafından tanımlanan veritabanına dönüştürür.
ALTER ROUTE ExpenseRoute
WITH
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317',
ADDRESS = 'TCP://www.Adventure-Works.com:1234';
Ayrıca Bkz.
CREATE ROUTE (Transact-SQL)
DROP ROUTE (Transact-SQL)
OLAY VERILERI (Transact-SQL)