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.
Şema karşılaştırma araçları, karşılaştırmanın kaynağı ve hedefinin bağlı veritabanı, SQL veritabanı projesi veya .dacpac
dosyasının herhangi bir birleşimi olabileceği iki veritabanı tanımını karşılaştırmanıza olanak tanır. Karşılaştırma tamamlandıktan sonra, karşılaştırma sonuçları hedefi kaynakla aynı hale getiren bir dizi eylem olarak görünür. Veritabanı modelleri arasındaki farklar, kaynak denetimi farkları gibi benzer bir şekilde sunulur. Şema karşılaştırma hedefi bir SQL projesi veya veritabanıysa, hedefi doğrudan şema karşılaştırma arabiriminden güncelleştirebilir veya aynı etkiye sahip bir güncelleştirme betiği oluşturabilirsiniz.
Şema karşılaştırması aşağıdaki özellikleri sağlar:
- İki
.dacpac
dosya, veritabanı veya SQL projesi arasındaki şemaları karşılaştırın. - Sonuçları, bir hedefi kaynakla eşleştirmek için bir dizi eylem olarak görüntüleyin.
- Sonuçlarda listelenen eylemleri seçerek hariç tutun.
- Karşılaştırmanın kapsamını kontrol eden seçenekleri belirleyin.
- Değişiklikleri doğrudan hedefe uygulayın veya değişiklikleri daha sonra uygulamak için bir betik oluşturun.
- Karşılaştırmayı kaydet.
İşlevsellik
Kaynak ve hedef arasındaki farklar, kolay gözden geçirme için bir kılavuzda görünür. Karşılaştırma, aşağıdaki seçeneklerden herhangi birinden türetilen bir veritabanı modeli arasında iki yönde de yapılabilir:
- bağlı veritabanı
- SQL veritabanı projesi
-
.dacpac
dosyası
Şema karşılaştırmasında, sonuçlar kılavuzunda veya değişikliklerin ayrıntılarının satır bazında sunulduğu betik biçiminde her farkın detayına inebilir ve inceleyebilirsiniz. Ayrıca, hedefi güncelleştirmeden önce belirli farkları seçmeli olarak hariç tutabilirsiniz. Şema karşılaştırma araçları Visual Studio, Azure Data Studio ve komut satırında kullanılabilir.
Şema karşılaştırma seçenekleri
Şema karşılaştırma seçenekleri, DacFx .NET kitaplığından sağlanan dağıtım seçeneklerinden alınır. Bu seçenekler şunlardır:
- boşluğu yoksay
- bölüm şemalarını yoksay
- sütun sırasını göz ardı et
- kaynakta olmayan dizinleri sil
- olası veri kaybına karşı engelleme
Karşılaştırmaya dahil edilen nesne türleri de yapılandırılabilir. Bu nesneler tablolar, saklı yordamlar, dizinler, izinler, kullanıcı tanımlı türler ve daha fazlasını içerir.
Şema karşılaştırma dosyaları
Şema karşılaştırması için karşılaştırma tanımı, .scmp
şema karşılaştırma dosyası olarak bilinen bir dosya olarak kaydedilebilir. Bu dosya XML'de şema karşılaştırması hakkındaki bilgileri depolar ve şunları içerir:
- kaynak ve hedef bağlantı bilgileri
- karşılaştırma seçenekleri
- dışlanan nesne türleri
Aynı .scmp
karşılaştırmayı daha sonra kolayca çalıştırmak veya karşılaştırmayı başkalarıyla paylaşmak için Visual Studio veya Azure Data Studio'da bir dosya açılabilir.
Şema karşılaştırmayı başlatma ve kullanma
Visual Studio'daki Araçlar menüsünde SQL Server'ı ve ardından Yeni Şema Karşılaştırması'nı seçin.
Alternatif olarak, Çözüm Gezgini'ndeTradeDev projesine sağ tıklayın ve Şema Karşılaştırma'yı seçin.
Şema Karşılaştırma penceresi açılır ve Visual Studio buna otomatik olarak gibi
SqlSchemaCompare1
bir ad atar.Aralarında yeşil ok bulunan iki açılan liste menüsü Şema Karşılaştırması pencere araç çubuğunun hemen altında görünür. Bu menüler, karşılaştırma kaynağınız ve hedefiniz için veritabanı tanımlarını seçmenize olanak tanır.
Kaynak Seç açılan listesinde Kaynak Seç'i seçtiğinizde Kaynak Şeması seç iletişim kutusu açılır.
Proje adına sağ tıklayarak Şema Karşılaştırma penceresini açtıysanız, kaynak şema zaten doldurulur ve 4. adıma geçebilirsiniz.
Proje, Veritabanı bağlantısı veya .dacpac dosyası seçerek şema karşılaştırma kaynağı seçimlerini tamamlayın. Kaynak, hedefte yapılan değişiklikler için temel olarak kullanmak istediğiniz veritabanı tanımıdır.
Hedef Seç açılır menüsünden Hedefi Seç'i seçin, ardından Hedef Şema Seç iletişim kutusu açılır. Proje, Veritabanı bağlantısı veya .dacpac dosyası seçerek şema karşılaştırma hedefi seçimlerini tamamlayın. Hedef, değerlendirmek ve değişiklikleri uygulamak istediğiniz veritabanı tanımıdır.
Hangi nesnelerin karşılaştırılacağını, ne tür farklılıkların yoksayılacağını ve diğer ayarları belirtmek için Şema Karşılaştırma Penceresi araç çubuğundaki Seçenekler düğmesini de seçebilirsiniz.
Karşılaştırma işlemini başlatmak için Şema Karşılaştırma Penceresi araç çubuğunda Karşılaştır düğmesini seçin.
Karşılaştırma tamamlandığında, proje ve veritabanı arasındaki yapısal farklar pencerenin üst kısmındaki Sonuçlar bölmesinde görünür. Karşılaştırma sonuçları tüm farkları varsayılan olarak eyleme (Sil, Değiştir veya Ekle gibi) göre gruplandırılır. Sonuçlar bölmesinde, veritabanı tanımları arasında farklılık gösteren her veritabanı nesnesi için bir satır görüntülenir. Her satır, kaynak veya hedef şemadaki (veya her ikisinde) nesneyi ve hedef nesneyi kaynak nesneyle aynı yapmak için hedef şemada gerçekleştirilecek eylemi tanımlar. Bir nesne yeniden düzenlenmişse ve yeniden adlandırıldıysa veya yeni bir şemaya taşındıysa, kaynak ve hedef adları farklıdır ve kaynak adı kalın yazı tipinde görünür ve farkı vurgular.
Varsayılan olarak, sonuç listesi her iki şemada da aynı olan veya güncelleştirme için desteklenmeyen nesneleri gizler (örneğin, yerleşik nesneler). Bu nesneleri göstermek için araç çubuğunda uygun filtre düğmelerini seçebilirsiniz.
Araç çubuğundaki Grup Sonuçları açılır listesini seçerek grup tercihini değiştirebilirsiniz. Sonuçları nesne türüne göre (örneğin, tablolara, görünümlere veya saklı yordamlara göre) gruplandırmak için Tür'e tıklayın.
Varsayılan olarak tüm farklar Hedefi Güncelleştir eyleminin kapsamına eklenir. Eşitlemek istemediğiniz farkları dışlayabilirsiniz. Bunu yapmak için, her satırın ortasındaki Eylem sütununun işaretini kaldırın. Alternatif olarak, Şema bölmesinde bir satıra sağ tıklayın ve Dışla'yı seçin. Satır hemen gri görünür. Hedef veritabanını güncelleştirmek için şema karşılaştırması kullanıldığında, bekleyen değişiklikler için bu satır dikkate alınmaz.
Ayrıca bir grup satırına sağ tıklayıp Tümünü Dışla veya Tümünü Dahil Et'i seçebilirsiniz. Bu, söz konusu gruptaki tüm farklılıkların işaretini kaldırmaya veya denetlemeye eşdeğerdir. Sonuçları şemaya göre gruplandırdığınızda, grup satırına sağ tıklamak, belirli bir şemadaki tüm değişiklikleri dahil etmek veya dışlamak için kullanışlı bir yoldur.
Dışlanan satırda bağımlı nesneler varsa (örneğin, Görünümsatırı tarafından başvuruda bulunılan tablo satırı), dışlanan satır devre dışı bırakılır ancak onay kutusu temizlenmez. Buna bağımlı olan tüm satırların işareti kaldırıldıktan sonra, devre dışı bırakılan satır işareti kaldırılır. Ayrıca, bir satır yeniden düzenlenmişse (yeniden adlandırılır veya başka bir şemaya taşınırsa), bu satır ve bağımlı alt satırlarından herhangi biri için onay kutusu devre dışı bırakılır.
Karşılaştırmayı yenilerseniz, göz ardı etmeyi seçtiğiniz farklar yoksayılır.
Hedefin şemasını güncelleştirmek için iki seçeneğiniz vardır. Hedef bir veritabanı veya projeyse, hedefi doğrudan Şema Karşılaştırma penceresinden güncelleştirebilir veya hedef bir veritabanı veya veritabanı dosyasıysa bir güncelleştirme betiği oluşturabilirsiniz. Oluşturulan bir betik, Transact-SQL Düzenleyicisi'nde görüntülenir ve buradan betiği bir veritabanında çalıştırmadan önce ayrıntılı olarak inceleyebilirsiniz.
Uyarı
Grafik şema karşılaştırması, Visual Studio'daki SDK stili SQL projeleri önizlemesinde kısmen kullanılabilir. Bağlı veritabanları ve .dacpac
dosyalar için şema karşılaştırmaları mevcuttur, SQL veritabanı projeleri henüz kullanılabilir değildir.
Visual Studio'daki Araçlar menüsünde SQL Server'ı ve ardından Yeni Şema Karşılaştırması'nı seçin.
Alternatif olarak, Çözüm Gezgini'ndeTradeDev projesine sağ tıklayın ve Şema Karşılaştırma'yı seçin.
Şema Karşılaştırma penceresi açılır ve Visual Studio buna otomatik olarak gibi
SqlSchemaCompare1
bir ad atar.Aralarında yeşil ok bulunan iki açılan liste menüsü Şema Karşılaştırması pencere araç çubuğunun hemen altında görünür. Bu menüler, karşılaştırma kaynağınız ve hedefiniz için veritabanı tanımlarını seçmenize olanak tanır.
Kaynak Seç açılan listesinde Kaynak Seç'i seçtiğinizde Kaynak Şeması seç iletişim kutusu açılır.
Proje adına sağ tıklayarak Şema Karşılaştırma penceresini açtıysanız, kaynak şema zaten doldurulur ve 4. adıma geçebilirsiniz.
Proje, Veritabanı bağlantısı veya .dacpac dosyası seçerek şema karşılaştırma kaynağı seçimlerini tamamlayın. Kaynak, hedefte yapılan değişiklikler için temel olarak kullanmak istediğiniz veritabanı tanımıdır.
Hedef Seç açılır menüsünden Hedefi Seç'i seçin, ardından Hedef Şema Seç iletişim kutusu açılır. Proje, Veritabanı bağlantısı veya .dacpac dosyası seçerek şema karşılaştırma hedefi seçimlerini tamamlayın. Hedef, değerlendirmek ve değişiklikleri uygulamak istediğiniz veritabanı tanımıdır.
Hangi nesnelerin karşılaştırılacağını, ne tür farklılıkların yoksayılacağını ve diğer ayarları belirtmek için Şema Karşılaştırma Penceresi araç çubuğundaki Seçenekler düğmesini de seçebilirsiniz.
Karşılaştırma işlemini başlatmak için Şema Karşılaştırma Penceresi araç çubuğunda Karşılaştır düğmesini seçin.
Karşılaştırma tamamlandığında, proje ve veritabanı arasındaki yapısal farklar pencerenin üst kısmındaki Sonuçlar bölmesinde görünür. Varsayılan olarak, karşılaştırma sonuçları tüm farkları eyleme (Sil, Değiştir veya Ekle gibi) göre gruplandırılır. Sonuçlar bölmesinde, veritabanı tanımları arasında farklılık gösteren her veritabanı nesnesi için bir satır görüntülenir. Her satır, kaynak veya hedef şemadaki (veya her ikisinde) nesneyi ve hedef nesneyi kaynak nesneyle aynı yapmak için hedef şemada gerçekleştirilecek eylemi tanımlar. Bir nesne yeniden düzenlenmişse ve yeniden adlandırıldıysa veya yeni bir şemaya taşındıysa, kaynak ve hedef adları farklıdır ve kaynak adı kalın yazı tipinde görünür ve farkı vurgular.
Varsayılan olarak, sonuç listesi her iki şemada da aynı olan veya güncelleştirme için desteklenmeyen nesneleri gizler (örneğin, yerleşik nesneler). Bu nesneleri göstermek için araç çubuğunda uygun filtre düğmelerini seçebilirsiniz.
Araç çubuğundaki Grup Sonuçları açılır listesini seçerek grup tercihini değiştirebilirsiniz. Sonuçları nesne türüne göre (örneğin, tablolara, görünümlere veya saklı yordamlara göre) gruplandırmak için Tür'e tıklayın.
Varsayılan olarak tüm farklar Hedefi Güncelleştir eyleminin kapsamına eklenir. Eşitlemek istemediğiniz farkları dışlayabilirsiniz. Bunu yapmak için, her satırın ortasındaki Eylem sütununun işaretini kaldırın. Alternatif olarak, Şema bölmesinde bir satıra sağ tıklayın ve Dışla'yı seçin. Satır hemen gri görünür. Hedef veritabanını güncelleştirmek için şema karşılaştırması kullanıldığında, bekleyen değişiklikler için bu satır dikkate alınmaz.
Ayrıca bir grup satırına sağ tıklayıp Tümünü Dışla veya Tümünü Dahil Et'i seçebilirsiniz. Bu, söz konusu gruptaki tüm farklılıkların işaretini kaldırmaya veya denetlemeye eşdeğerdir. Sonuçları şemaya göre gruplandırdığınızda, bu, belirli bir şemadaki tüm değişiklikleri dahil etmenin veya dışlamanın kullanışlı bir yoludur.
Dışlanan satırda bağımlı nesneler varsa (örneğin, Görünümsatırı tarafından başvuruda bulunılan tablo satırı), dışlanan satır devre dışı bırakılır ancak onay kutusu temizlenmez. Buna bağımlı olan tüm satırların işareti kaldırıldıktan sonra, devre dışı bırakılan satır işareti kaldırılır. Ayrıca, bir satır yeniden düzenlenmişse (yeniden adlandırılır veya başka bir şemaya taşınırsa), bu satır ve bağımlı alt satırlarından herhangi biri için onay kutusu devre dışı bırakılır.
Karşılaştırmayı yenilerseniz, atlamayı seçtiğiniz farklar yoksayılır.
Hedefin şemasını güncelleştirmek için iki seçeneğiniz vardır. Hedef bir veritabanı veya projeyse, hedefi doğrudan Şema Karşılaştırma penceresinden güncelleştirebilir veya hedef bir veritabanı veya veritabanı dosyasıysa bir güncelleştirme betiği oluşturabilirsiniz. Oluşturulan bir betik, Transact-SQL Düzenleyicisi'nde görüntülenir ve buradan betiği bir veritabanında çalıştırmadan önce ayrıntılı olarak inceleyebilirsiniz.
Visual Studio Code'da şema karşılaştırması hakkında daha ayrıntılı bilgi için Şema Karşılaştırma (Önizleme) makalesinde bulabilirsiniz
Komut paletindeki
ctrl/cmd+shift+P
( ) Visual Studio Code'da MSSQL: Şema Karşılaştırması (Önizleme) için arama yapın ve seçin.Alternatif olarak, Veritabanı Projeleri görünümünde bir veritabanı projesine veya Nesne Gezgini'ndeki bir veritabanına sağ tıklayıp Şema Karşılaştırma'yı seçin.
Şema Karşılaştırma penceresi açılır ve başlatma noktasına göre bir kaynak veya hedef önceden ayarlanmış olabilir.
Şema Karşılaştırma penceresi araç çubuğunun hemen altında, ortasında ok olan iki tane üç nokta düğmesi görünür. Bu menüler, karşılaştırma kaynağınız ve hedefiniz için veritabanı tanımlarını seçmenize olanak tanır.
Kaynak veya hedef için üç nokta düğmesinin seçilmesi, her birinin güncelleştirilebileceği bir iletişim kutusu açar. Proje, Veritabanı bağlantısı veya .dacpac dosyası seçerek şema karşılaştırma kaynağı seçimlerini tamamlayın. Kaynak, hedefte yapılan değişiklikler için temel olarak kullanmak istediğiniz veritabanı tanımıdır. Hedef, değerlendirmek ve değişiklikleri uygulamak istediğiniz veritabanı tanımıdır.
Seçimler tamamlandıktan sonra tamam'ı seçerek iletişim kutusunu kapatın ve Şema Karşılaştırma penceresine dönün.
Hangi nesnelerin karşılaştırılacağını, ne tür farklılıkların yoksayılacağını ve diğer ayarları belirtmek için Şema Karşılaştırma Penceresi araç çubuğundaki Seçenekler düğmesini de seçebilirsiniz.
Karşılaştırma işlemini başlatmak için Şema Karşılaştırma Penceresi araç çubuğunda Karşılaştır düğmesini seçin.
Karşılaştırma tamamlandığında, proje ve veritabanı arasındaki yapısal farklar pencerenin üst kısmındaki Sonuçlar bölmesinde görünür. Varsayılan olarak, karşılaştırma sonuçları tüm farkları eyleme (Sil, Değiştir veya Ekle gibi) göre gruplandırılır. Sonuçlar bölmesinde, veritabanı tanımları arasında farklılık gösteren her veritabanı nesnesi için bir satır görüntülenir. Her satır, kaynak veya hedef şemadaki (veya her ikisinde) nesneyi ve hedef nesneyi kaynak nesneyle aynı yapmak için hedef şemada gerçekleştirilecek eylemi tanımlar. Bir nesne yeniden düzenlenmişse ve yeniden adlandırıldıysa veya yeni bir şemaya taşındıysa, kaynak ve hedef adları farklıdır ve kaynak adı kalın yazı tipinde görünür ve farkı vurgular.
Varsayılan olarak tüm farklar Hedefi Güncelleştir eyleminin kapsamına eklenir. Eşitlemek istemediğiniz farkları dışlayabilirsiniz. Bunu yapmak için, her satırın ortasındaki Eylem sütununun işaretini kaldırın. Hedef veritabanını güncelleştirmek için şema karşılaştırması kullanıldığında, bekleyen değişiklikler için bu satır dikkate alınmaz.
Dışlanan satırda bağımlı nesneler varsa (örneğin, Görünümsatırı tarafından başvuruda bulunılan tablo satırı), dışlanan satır devre dışı bırakılır ancak onay kutusu temizlenmez. Buna bağımlı olan tüm satırların işareti kaldırıldıktan sonra, devre dışı bırakılan satır işareti kaldırılır. Ayrıca, bir satır yeniden düzenlenmişse (yeniden adlandırılır veya başka bir şemaya taşınırsa), bu satır ve bağımlı alt satırlarından herhangi biri için onay kutusu devre dışı bırakılır.
Karşılaştırmayı yenilerseniz, atlamayı seçtiğiniz farklar yoksayılır.
Hedefin şemasını güncelleştirmek için iki seçeneğiniz vardır. Hedef bir veritabanı veya projeyse, hedefi doğrudan Şema Karşılaştırmapenceresinden Uygula düğmesiyle güncelleştirebilir veya hedef betik oluştur düğmesiyle bir veritabanıysa bir güncelleştirme betiği oluşturabilirsiniz. Oluşturulan bir betik, Transact-SQL Düzenleyicisi'nde görüntülenir ve buradan betiği bir veritabanında çalıştırmadan önce ayrıntılı olarak inceleyebilirsiniz.
Şema karşılaştırması, Visual Studio veya Azure Data Studio gibi grafiksel bir araç gerektirir.