SQL SERVER İki Farklı Database Arasında Linkle (Köprü) Oluşturma

Zaman zaman iki ya da daha fazla veri tabanı sunucusu arasında veri veya komut aktarımları yapma ihtiyacı duyuyoruz. Fakat güvenlik protokolleri gereği iki sunucu arasında bağlantıya izin verilmez.  Gerekli işlemlerin yapılması ve data arasında ki güvenlik bilgilerinin birbiri üzerine bildirilmesi gerekir. Bunun için aşağıdaki SQL komutları çalıştırılmalıdır.

sp_addlinkedserver 'SUNUCU1\SQLEXPRESS'  --İlk önce çalıştırılır.

sp_serveroption 'SUNUCU1\SQLEXPRESS', 'data access' , 'true' --ikinci olarak çalıştırılır.

sp_helpserver --Bağlantının kurulduğunu görüntülemek istersek çalıştırılır.

EXEC sp_addlinkedsrvlogin 'SUNUCU1\SQLEXPRESS', 'false', NULL, 'sa', 'password123' --Güvenlik bilgilerini kayıt etmek için çalıştırılır.

Yukarıda ki kod blokları eklenecek olan her bir sunucu için çalıştırılmalıdır. Sunucu isminde bir veritabanı sunucumuz olduğunu düşünün. Sunucu1, sunucu2, sunucu3 gibi /n tane sunucu ekleyebiliriz. Biz sadece bir sunucu için işlem yaptık. Peki iki data arasında ki sorgulamalar kodlar nasıl olmalıdır bir kaç örnek ile bakalım...

İki Database Arasında ki Ortak Kayıtları Listeleme:

SELECT * FROM [SUNUCU1\SQLEXPRESS].OKULDB.dbo.KULLANICILAR WHERE UserTC IN 
(SELECT UserTC FROM [SUNUCU2\SQLEXPRESS].KANTINDB.dbo.KULLANICILAR)

Yukarıda ki sorguda Kantin ve Okul veritabanları arasındaki kullanıcılar tablosu eşleştirilerek sorgu yapılmaktadır. Şöyle ki iki tabloda ortak olan kullanıcıları T.C. Kimlik numarası filtrelenerek sorgulanmaktadır.

İki Database Arasında Veri Kaydetme:

INSERT INTO [SUNUCU1\SQLEXPRESS].OKULDB.dbo.KULLANICILAR (USER_ID, USER_TC,USER_NAME, USER_LUSTNAME,USER_NUMBER,USER_USERNAME,USER_PASSWORD )
SELECT USER_ID, USER_TC,USER_NAME, USER_LUSTNAME,USER_NUMBER,USER_USERNAME,USER_PASSWORD FROM [SUNUCU2\SQLEXPRESS].KANTINDB.dbo.KULLANICILAR

Yukarıda ki sorguda Okul veritabanının kullanıcılar tablosuna Kantin veritabanının kullanıcılar tablosunda ki tüm kayıtlar aktarılır. 

Not: Tablolar örneklemeler için yapılmış, gerçekliği yansıtmamaktadır 😊


Yorumlar

Bu blogdaki popüler yayınlar

Yazıcıda Bekleyen Belgeleri Hızlıca Temizleme

C# ile SQL Veritabanı Yedeğini Alma

SQL SERVER'da sa ve diğer kullanıcıları aktif etme