SQL Server Management Studio'de Şema Karşılaştırması (önizleme)

Şunlar için geçerlidir: SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse Analytics

Şema Karşılaştırma, iki veritabanı tanımını karşılaştırmanızı sağlar. Karşılaştırmanın kaynağı ve hedefi, bağlı veritabanı, SQL veritabanı projesi veya .dacpac dosyanın herhangi bir bileşimi olabilir. Karşılaştırma tamamlandıktan sonra sonuçlar, hedefi kaynakla aynı hale getiren bir eylem kümesi olarak görünür. Veritabanı modelleri arasındaki farklar, kaynak denetimi farkları gibi 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.

SQL Server Management Studio'daki Şema Karşılaştırma penceresinin, bir kaynak ile hedef arasındaki karşılaştırmayı gösteren ekran görüntüsü.

Şema Karşılaştırma aşağıdaki özellikleri sağlar:

  • İki .dacpac dosya, veritabanı veya SQL veritabanı 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ı yeniden kullanmak üzere bir .scmp dosya olarak kaydedin.

Prerequisites

Şema Karşılaştırmayı Başlat

Çeşitli giriş noktalarından SSMS'de Şema Karşılaştırma'ya açabilirsiniz.

Nesne Gezgini

Nesne Gezgini'da bir veritabanına sağ tıklayın ve Tasks>Schema Compare (Önizleme) öğesini seçin. Seçilen veritabanı otomatik olarak kaynak olarak ayarlanır.

Çözüm Gezgini

Çözüm Gezgini'da bir SQL veritabanı projesine sağ tıklayın ve Schema Compare (Önizleme) öğesini seçin. Seçilen proje otomatik olarak kaynak olarak ayarlanır.

Note

Çözüm Gezgini'da SQL veritabanı projeleriyle çalışmak için Database DevOps iş yükü gerekir.

Araçlar menüsü

Araçlar menüsünde Şema Karşılaştırması (Önizleme) öğesini seçin. Şema Karşılaştırma penceresi önceden ayarlanmış bir kaynak veya hedef olmadan açılır.

Kaynak ve hedef seçin

Şema Karşılaştırma açıldıktan sonra karşılaştırma için kaynağı ve hedefi seçin. Her bir bağlı veritabanı, .dacpac dosya veya SQL veritabanı projesi olabilir.

Database, Veri Katmanı Uygulaması (.dacpac) ve Veritabanı Projesi seçeneklerini gösteren kaynak ve hedef seçim seçeneklerinin ekran görüntüsü.

  • Veritabanı: Çalışan bir veritabanı örneğine bağlanın. Kaynak, hedefte yapılan değişiklikler için temel olarak kullanmak istediğiniz veritabanı tanımıdır.
  • Veri katmanı Uygulaması (.dacpac): Derlenmiş .dacpac bir dosyaya göz atın. bir .dacpac veritabanı şemasının anlık görüntüsünü içerir.
  • Database Project: Açık bir SQL veritabanı project seçin. Veritabanı DevOps iş yükünü gerektirir.

Hedef, değerlendirmek ve değişiklikleri uygulamak istediğiniz veritabanı tanımıdır.

Karşılaştırmayı çalıştırma ve gözden geçirme

Karşılaştırma işlemini başlatmak için araç çubuğunda Karşılaştır'ı seçin.

Karşılaştırma tamamlandığında , Sonuçlar bölmesi kaynak ve hedef arasındaki yapısal farkları gösterir. Karşılaştırma sonuçları, Silme, Değiştirme veya Ekle gibi tüm farkları eyleme göre gruplandırıyor.

Her satır, hedef nesneyi kaynak nesneyle aynı yapmak için kaynak veya hedef şemadaki (veya her ikisinde) nesneyi ve işlemin hedef şemada gerçekleştirilen eylemi tanımlar. Nesneyi yeniden adlandırır veya yeni bir şemaya taşırsanız, kaynak ve hedef adları farklıdır. Kaynak adı, farkı vurgulamak için kalın yazı tipinde görünür.

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çin.

Araç çubuğundaki Grup Sonuçları açılır listesini seçerek grup tercihini değiştirebilirsiniz. Sonuçları tablo, görünüm veya saklı yordamlar gibi nesne türüne göre gruplandırmak için Tür'e tıklayın.

Farkları dışla

Varsayılan olarak, Hedefi Güncelleştir eylemi kapsamındaki tüm farklılıkları içerir. Eşitlemek istemediğiniz farkları dışlamak için her satırın Ekle sütununu temizleyin. Satır hemen gri görünür. Şema Karşılaştırması hedefi güncelleştirdiğinde, bekleyen değişiklikler için bu satırı dikkate almaz.

Dışlanan satırda Görünüm satırı tarafından başvuruda bulunulduğu Tablo satırı gibi bağımlı nesneler varsa, dışlanan satır devre dışı bırakılır, ancak siz tüm bağımlı satırların işaretini kaldırana kadar onay kutusu temizlenmez. Bir satırı yeniden adlandırma veya başka bir şemaya taşıma gibi yeniden düzenleme yaparsanız, bu satır ve bağımlı alt satırları için onay kutusu devre dışı bırakılır.

Karşılaştırma seçenekleri

Hangi nesnelerin karşılaştırıldığını ve hangi tür farklılıkların yoksayıldığını yapılandırmak için araç çubuğunda Seçenekler'i seçin. Seçenekler şunlardır:

  • Boşlukları yok say
  • Bölüm şemalarını yok say
  • Sütun sırasını yok say

Ayrıca tablolar, saklı yordamlar, dizinler, izinler ve kullanıcı tanımlı türler gibi karşılaştırmaya hangi nesne türlerinin dahil olduğunu yapılandırabilirsiniz.

Değişiklikleri uygulama

Hedefin şemasını güncelleştirmek için iki seçeneğiniz vardır:

  • Uygula: Şema Karşılaştırma penceresinden değişiklikleri doğrudan hedef veritabanına veya projeye uygulayın.
  • Betik oluştur: Aynı değişiklikleri yakalayan ve daha sonra gözden geçirebileceğiniz ve çalıştırabileceğiniz bir Transact-SQL betiği oluşturun.

Oluşturulan bir betik, Transact-SQL Düzenleyicisi'nde görüntülenir; burada bu betiği bir veritabanında inceleyip çalıştırabilirsiniz.

Karşılaştırmaları kaydetme

Şema Karşılaştırma için karşılaştırma tanımını, .scmpşema karşılaştırma dosyası olarak bilinen bir dosya olarak kaydedebilirsiniz. Bu dosya XML'de karşılaştırma ayarları 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 SSMS'de bir .scmp dosya açabilirsiniz.