SQL Server Data Tools Kullanarak Veritabanı Karşılaştırma
Bir önceki yazımda anlatmış olduğum Microsoft’un veritabanı uygulamalarını geliştirme ve yönetme araçlarından biri olan SQL Server Data Tools konusuna deyinmiştim. Bu makalede ise SQL Server Data Tools için iki önemli özellik olan Schema Compare ve Data Compare konularını anlatacağım.
Schema Compare
Birçok geliştiricinin kullandığı ve işini kolaylaştıracak olan schema compare özelliği SQL Server Data Studio’da bulunan veritabanı şemalarını karşılaştırmak ve farklılıkları belirlemek için kullanılmaktadır. Bu özellik, geliştiricilere farklı veritabanı ortamlarında yapılan en son değişiklikleri senkronize etme, yönetme ve izleme konusunda yardımcı olmaktadır.
İlk olarak Visual Studio’da SQL Server Database Project oluşturuyoruz, devamında Schema Compare özelliğini ile karşılaştırma yapmak için şu adımları izlemeliyiz.
1- Ekranın üst kısmında bulunan Tools(Araçlar) bölümünden SQL Server ardından New Schema Comparison seçeneğini seçiyoruz.
2- Açılan SqlSchemaCompare sorgu ekranında Select Source(Kaynak Seç) ve Select Target(Hedef Seç) listelerinden ilgili database(veritabanları) seçilmelidir.
3- SqlSchemaCompare sorgu ekranında sol üst köşede bulunan Select Source(Kaynak Seç) alanına tıklıyoruz.
4- Tıkladığımızda karşımıza Select Source Schema( Kaynak Şemasını Seç) ekranı gelmektedir. Varsayılan olarak seçili gelen Database(veritabanı) alanı altında bulunan Select Connection seçeneğine tıklıyoruz.
5- Açılan ekranda bağlantı sağlayabileceğimiz History(Geçmiş) alanından geçmiş tüm bağlantılarınızla bağlanabilir ya da Browse(Gözat) alanından Server Name(Sunucu Adını), Authentication(Kimlik Doğrulama) ve Database Name(Veritabanı Adı) alanlarına bilgileri girdikten sonra Connect(Bağlan) seçeneğine tıklıyoruz.
6- Adımları tamamladıktan sonra Connect seçeneğine tıklayarak bağlantı sağlıyoruz.En son aşamada bilgiler yüklendikten sonra Select Source Schema ekranı gösterilecektir ve buradaDatabase alanında seçmiş olduğumuz bilgiler görünmektedir yüklemek için OK tuşuna tıklıyoruz.
SQL veritabanlarını karşılaştırmak için Select Source listesinden veritabanımızı seçtik aynı işlemleri Select Target listesinde de gerçekleştirmemiz gerekmektedir.
7- Select Source ve Select Target alanlarına karşılaştırma yapmak istediğimiz veritabanlarını seçtikten sonra karşılaştırma işlemine başlamadan önce karşılaştırma yapmak istediğiniz konular üzerinde Options(Seçenekler) ayarlarından karşılaştırmalarınızı kişiselleştirebilirsiniz.
8- General(Genel) sekmesinden yararlanarak çeşitli karşılaştırma seçenekleri seçebilirsiniz.
9-
Object Types(Nesne Türleri) sekmesinde source(kaynak) ve target(hedef) SQL veritabanlarını belirli nesne türlerini ve bunların alt öğelerini belirleyerek çeşitli karşılaştırmalar yapabilirsiniz. Ayarları kişiselleştirdikten sonra OK butonuna tıklayarak karşılaştırma işlemini başlatabilirsiniz.
10- Bütün ayarlamaları tamamladıktan sonra Compare(Karşılaştırmak) tıklanarak karşılaştırma işlemini gerçekleştirebilirsiniz.
Karşılama işlemi gerçekleştiğinde karşımıza iki panel gelecektir. Yapılacak olan güncellemeler için sıralı bir şekilde karşılaştırılmış olan kaynak ve hedef nesneleri görünmektedir.
Nesneleri Action, Schema ve Type seçeneklerine göre panelde gruplandırma yaparak gösterebilirsiniz.
Karşılaştırma yaptıktan sonra hedef veritabanını güncellemek için iki yol vardır bunlardan birincisi Generate Script oluşturarak hedef veritabını adına göre ayarlanmış bir komut dosyası paneli açılır.
Açılan komut dosyasının yürütme planını görmek için kırmızıyla işaretlediğim alana tıklayarak yürütme planını inceleyebilirsiniz.
İkinci seçenek olan karşılaştırma panelinde ilk olarak Update seçeneğine tıklıyoruz karşımıza genel panelde Yes seçeneğini seçerek Compare Update işlemini gerçekleştirebiliriz.
Data Compare
Data compare özelliği SQL Server Data Studio’da bulunan genellikle birbiriyle ilişkili veri setlerini karşılaştırmak ve farklılıkları belirlemek için kullanılmaktadır. Veri karşılaştırma işlemi, aynı türdeki verilerin farklı kaynaklardan veya farklı zamanlardan elde edilmiş olması durumunda yapılır. Bu işlem, veri bütünlüğünü kontrol etmek veya hataları belirlemek gibi amaçlarla kullanılabilir.
İlk olarak Visual Studio’da SQL Server Database Project oluşturuyoruz, devamında Data Compare özelliğini ile veri setlerini karşılaştırma yapmak için şu adımları izlemeliyiz.
1- Ekranın üst kısmında bulunan Tools(Araçlar) bölümünden SQL Server ardından New Data Comparison seçeneğini seçiyoruz.
2- Açılan New Data Comparison sorgu ekranında Source Database(Kaynak Veritabanı) ve Target Database(Hedef Veritabanı) listelerinden ilgili database(veritabanları) seçilmelidir.
3- Schema compare özelliğinde gerçekleştirdiğimiz işlemlerde ki gibi Select Connection alanlarına tıklayarak açılan ekranda bağlantı sağlayabileceğimiz History(Geçmiş) alanından geçmiş tüm bağlantılarınızla bağlanabilir ya da Browse(Gözat) alanından Server Name(Sunucu Adını), Authentication(Kimlik Doğrulama) ve Database Name(Veritabanı Adı) alanlarına bilgileri girdikten sonra Connect(Bağlan) seçeneğine tıklayarak bağlantı sağlayabilirsiniz.
4- Source Database ve Target Database alanlarını seçtikten sonra Next butonuna tıklayarak ilerliyoruz.
5- Bu aşamada hangi Tables(tabloların), alanların ve Views(görünümlerin) karşılaştırılacağını belirleyerek Compare(karşılaştırma) işlemini gerçekleştirebilirsiniz.
6- Açılan panelde karşılaştırma yapılacak olan tablolar görünmektedir schema compare özelliğinde gördüğümüz iki şekilde güncelleme vardır. Birincisi Generate Script alanına tıklayarak hedef veritabanı güncellemelerini gerçekleştirebilirsiniz.
7- İkinci seçenek olarak panelde bulunan Update Target alanına tıklayarak hedef veritabanı güncellemelerini gerçekleştirebilirsiniz.
Bu yazımda SQL Server Data Studio’nun iki özelliği olan Schema Compare ve Data Compare özelliklerini anlatmaya çalıştım. Özetleyecek olursak Schema Compare özelliği veritabanları arasındaki şema farklılıklarını belirlemek ve bu farklılıkları eşleştirmek için kullanılırken, Data Compare özelliği iki veritabanı arasındaki veri farklılıklarını belirlemek ve bu farklılıkları eşleştirmek için kullanılmaktadır.
Kaynaklar
https://www.sqlshack.com/how-to-compare-two-sql-databases-from-visual-studio/
https://www.mshowto.org/sql-serverda-iki-veri-tabani-karsilastirmak.html
https://www.sqlshack.com/how-to-compare-two-sql-databases-from-visual-studio/