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.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Şema karşılaştırma araçları iki veritabanı tanımını karşılaştırmanızı sağlar. Karşılaştırmanın kaynağı ve hedefi olarak bağlı veritabanı, SQL veritabanı projesi veya .dacpac dosyanın herhangi bir birleşimini kullanabilirsiniz. Karşılaştırma tamamlandığında, sonuçları hedefi kaynakla aynı hale getiren bir eylem kümesi olarak görürsünüz. Veritabanı modelleri arasındaki farklar, kaynak denetimi farkları gibi görünür. Ş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ırma aşağıdaki özellikleri sağlar:
- İki
.dacpacdosya, 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.
Functionality
Kaynak ve hedef arasındaki farklar, kolay gözden geçirme için bir kılavuzda görünür. Aşağıdaki seçeneklerden herhangi birinden türetilen bir veritabanı modeli arasında her iki yönde de karşılaştırma yapabilirsiniz:
- bağlı veritabanı
- SQL veritabanı projesi
-
.dacpacdosyası
Ş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, Visual Studio Code ve komut satırında kullanılabilir.
Şema karşılaştırma seçenekleri
Şema karşılaştırma seçenekleri, DacFx .NET kitaplığında bulunan dağıtım seçeneklerini temel alır. Bu seçenekler şunlardır:
- Boşlukları yok say
- Bölüm şemalarını yok say
- Sütun sırasını yok say
- Kaynakta olmayan dizinleri bırakma
- Olası veri kaybını engelleme
Karşılaştırmaya dahil edilen nesne türlerini de yapılandırabilirsiniz. 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ını, şema .scmp olarak bilinen bir dosya olarak kaydedebilirsiniz. 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ı karşılaştırmayı daha sonra yeniden çalıştırmak veya karşılaştırmayı başkalarıyla paylaşmak için dosyayı Visual Studio açabilirsiniz.scmp.
Ş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
SqlSchemaCompare1bir 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çarsanı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.
Şema Karşılaştırma Penceresi'ndekiHedef Seç açılan listesinden Hedefi Seç'i seçin. 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ı, hangi fark türlerinin yoksayılacağını ve diğer ayarları belirtmek için Şema Karşılaştırma Penceresi araç çubuğunda Seçenekler'i seçin.
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ı 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 yerleşik nesneler gibi güncelleştirme için desteklenmeyen nesneleri gizler. Bu nesneleri göstermek için araç çubuğunda uygun filtre seçeneklerini belirleyin.
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. Bu betiği inceleyebilir ve bir veritabanında yürütebilirsiniz.
Note
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
SqlSchemaCompare1bir 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çarsanı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.
Şema Karşılaştırma Penceresi'ndekiHedef Seç açılan listesinden Hedefi Seç'i seçin. 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ı, hangi fark türlerinin yoksayılacağını ve diğer ayarları belirtmek için Şema Karşılaştırma Penceresi araç çubuğunda Seçenekler'i seçin.
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ı 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 yerleşik nesneler gibi güncelleştirme için desteklenmeyen nesneleri gizler. Bu nesneleri göstermek için araç çubuğunda uygun filtre seçeneklerini belirleyin.
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, 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. Bu betiği inceleyebilir ve bir veritabanında yürütebilirsiniz.
Visual Studio Code'da şema karşılaştırması hakkında daha ayrıntılı bilgi için Şema Karşılaştırma makalesinde bulabilirsiniz
Komut paletindeki
ctrl/cmd+shift+P( ) Visual Studio Code'da MSSQL: Şema Karşılaştırma'yı arayı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ı 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. Bu betiği inceleyebilir ve bir veritabanında yürütebilirsiniz.
SQL Server Management Studio'da, veritabanlarını, projeleri veya .dacpac dosyalarını karşılaştırmak için Şema Karşılaştırma aracını kullanabilirsiniz.
SQL Server Management Studio'da, karşılaştırmak istediğiniz veritabanına bağlanın.
Nesne Gezgini veritabanına sağ tıklayın ve Görevler>Şema Karşılaştırması (önizleme) öğesini seçin.
Şema Karşılaştırma penceresinde, Project, Veritabanı bağlantısı veya .dacpac dosyası seçerek şema karşılaştırma hedefi seçimlerini tamamlayın.
Karşılaştırmayı başlatmak için Karşılaştır'ı 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ı 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 Ekle 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.
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. Bu betiği inceleyebilir ve bir veritabanında yürütebilirsiniz.
Şema Karşılaştırması SQL Server Management Studio, Visual Studio veya Visual Studio Code için MSSQL uzantısı aracılığıyla kullanılabilir.