SQL Server üzerinde farklı veri tabanlarını kullanarak işlem yapmak mümkündür. Aynı Server üzerinde bu işlemi kolayca yaparken network üzerindeki farklı serverlara erişebilmek için Linked Server kullanılır.
Linked Server ayarlarının yapılması:
Öncelikle Sql Server‘a giriş yaparak işlem yapılacak sunucuya bağlanılır.
Daha sonra Server Objects menüsü altında bulunan Linked Servers alanına sağ tıklanır ve New Linked Server seçeneği seçilerek sunucu oluşturma sihirbazı açılır.
New Linked Server Sihirbazı
Açılan sihirbaz üzerinde doldurulması gereken alanlar;
Linked server: Bu alana tanıtılacak olan bağlantının ismini girilir.
Provider: SQL ile bağlantı kurulacağı için bu alan Microsoft OLE DB Provider for SQL Server olarak seçilir.
Product name: Bu alan SQL şeklinde doldurulur.
Data source: Bu alana eğer aynı makine üzerinden işlem yapılacaksa örnekte daire içerisine alınmış olan Server ismini, Network üzerinden başka bir bilgisayardaki SQL Server’a bağlanılacaksa o bilgisayarın IP adresi girilir.
Provider string: Bu alanı boş bırakılabilir.
Catalog: Bu alana bağlantı kurulacak sunucuda hangi veri tabanına bağlantı kurmak isteniliyorsa o veri tabanının isminin girilmesi gerekir.
Data Source alanı mutlaka doldurulmalıdır.
Ardından Security sekmesine geçiş yapılır. Eğer aynı sunucu üzerinde işlem yapılacak ise “Be made using login’s current security context” seçimi yapılır. Fakat bağlantı yapacağımız veri tabanı farklı bir sunucu da ise “Be made using this security context” alanını seçtikten sonra “Remote login” ve “With Password” alanlarını bağlantı yapacağımız veri tabanına erişim yetkisi olan bir kullanıcının bilgileri yazılmalıdır.
Son olarak Server Options sekmesine tıklatılır. Bağlantı için aşağıdaki resimde görülebileceği gibi üstteki beş adet seçeneği True olarak işaretlemek yeterli olacaktır.
Ok butonuna basılarak bağlantı işlemi tamamlanmış olur.
Linked Server üzerinde nasıl sorgu yazılır?
Aslında bunun diğer sorgu işlemlerinde pek bir farkı yoktur. Bunun için birden fazla yazım şekli kullanılabilir. Aşağıdaki iki farklı yazım şekli aynı sonucu verecektir.
select * from Openquery(XPODASERVER, 'select * from XPODA_CLIENT_USERS')
select * from XPODASERVER.XPODA.dbo.XPODA_CLIENT_USERS