Bazı durumlarda Sql Server üzerinde farklı veritabanları üzerinde işlem yapmamız gerekebilir. Bu durumda yardımınıza Linked Server yetişiyor. Şimdi ayarlarına hep birlikte detaylı bir şekilde inceleyelim.
- Öncelikle Sql Server‘a giriş yaparak işlem yapacağımız sunucuya bağlanıyoruz.
- Daha sonra Server Objects menüsü altında bulunan Linked Servers alanına sağ tıklıyoruz ve New Linked Server diyerek bağlı sunucu oluşturma sihirbazını açıyoruz.
- Şimdi açılan sihirbaz üzerinde doldurulması gereken alanlara detaylı bir şekilde açıklayalım.
- Linked server: Bu alana tanımayacağım bağlantının ismini giriyoruz.
- Provider: SQL ile bağlantı kuracağımız için bu alanı Microsoft OLE DB Provider for SQL Server olarak seçiyoruz.
- Product name: Bu alana herhangi bir isim verebiliriz.
- Data source: Bu alana bağlantı kuracağınız sunucunu ismini veya ip adresinin sonra Sql Server’ın instance name alanını eklemeniz gerekiyor.
- Provider string: Bu alanı boş bırakabilirsiniz.
- Catalog: Bu alana bağlantı kuracağız sunucuda hangi veri tabanına bağlantı kurmak istiyorsanız onun ismini girmeniz gerekiyor.
- Daha sonra Security sekmesine geçiyoruz. Burada bağlantı türümüzü seçmemiz gerekecek.
- Burada bizi ilgilendiren iki durum olacak. Eğer aynı sunucu üzerinde işlem yapacak isek “Be made using login’s current security context” seçiyoruz. Fakat bağlantı yapacağımız veritabanı 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 veritabanına erişim yetkisi olan bir kullanıcı yazıyoruz.
- Son olarak Server Options sekmesine tıklıyoruz. Bağlantı için aşağıdaki resimde görebileceğiniz gibi üstteki beş adet seçeneği True olarak işaretlemek yeterli olacaktır.
Bağlantı işlemimiz böylece tamamlanmış oluyor.
Peki Linked Server üzerinde nasıl sorgu yapacağız?
Aslında bunun diğer sorgu işlemlerinde pek bir farkı yok. Bunun için sizler iki yazım şekli göstereceğim. İki yazım şeklinde de istediğiniz sonuca ulaşabilirsiniz. select * from Openquery(LINKEDSERVER, ‘select * from users’) select * from LINKEDSERVER.dbname.dbo.users
123 | select * from Openquery(LINKEDSERVER, ‘select * from users’) select * from LINKEDSERVER.dbname.dbo.users |