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 Data Factory'de SSIS Tümleştirme Çalışma Zamanı
SQL Server Integration Services'ın geçerli sürümünde, SQL Yürütme görevindeki SQL deyimi bir MERGE deyimi içerebilir. Bu MERGE deyimi, tek bir deyimde birden çok INSERT, UPDATE ve DELETE işlemi gerçekleştirmenizi sağlar.
Bir pakette MERGE deyimini kullanmak için şu adımları izleyin:
Kaynak verileri yükleyen, dönüştüren ve geçici veya hazırlama tablosuna kaydeden bir Veri Akışı görevi oluşturun.
MERGE deyimini içeren bir EXECUTE SQL görevi oluşturun.
Veri Akışı görevini SQL Yürütme görevine bağlayın ve merge deyiminin girişi olarak hazırlama tablosundaki verileri kullanın.
Uyarı
MERGE deyimi genellikle bu senaryoda bir hazırlama tablosu gerektirse de, MERGE deyiminin performansı genellikle Arama dönüşümü tarafından gerçekleştirilen satır satır aramanın performansını aşıyor. Arama tablosunun büyük boyutu, başvuru tablosunu önbelleğe almak için Arama dönüşümünde kullanılabilen belleği test ettiğinde DE MERGE yararlıdır.
MERGE kullanımı
Genellikle, bir tablodan başka bir tabloya ekleme, güncelleştirme ve silme işlemleri içeren değişiklikleri uygulamak istediğinizde MERGE deyimini kullanırsınız. SQL Server 2008'in (10.0.x) öncesinde bu işlem hem Arama dönüştürmesi hem de birden çok OLE DB Komutu dönüştürmesi gerektiriyor. Arama dönüştürmesi, her satırın yeni mi yoksa değiştirilmiş mi olduğunu belirlemek için satır bazında arama gerçekleştirir. Ardından OLE DB Komutu dönüşümleri gerekli INSERT, UPDATE ve DELETE işlemlerini gerçekleştirdi. SQL Server 2008'den (10.0.x) başlayarak tek bir MERGE deyimi hem Arama dönüştürmesinin hem de ilgili OLE DB Komutu dönüşümlerinin yerini alabilir.
ARTIMLI YÜKLEMELERLE BİRLEŞTİRME
SQL Server 2008'de (10.0.x) yeni olan değişiklik verileri yakalama işlevi, artımlı yüklerin bir veri ambarında güvenilir bir şekilde gerçekleştirilmesini kolaylaştırır. Eklemeleri ve güncelleştirmeleri gerçekleştirmek için parametreli OLE DB Komutu dönüştürmelerini kullanmaya alternatif olarak, her iki işlemi de birleştirmek için MERGE deyimini kullanabilirsiniz.
Daha fazla bilgi için bkz. Değişiklikleri Hedefe Uygulama.
Diğer Senaryolarda BİRLEŞTİR
Aşağıdaki senaryolarda, MERGE deyimini bir Integration Services paketinin dışında veya içinde kullanabilirsiniz. Ancak, bir Integration Services paketi genellikle bu verileri birden çok heterojen kaynaktan yüklemek ve ardından verileri birleştirmek ve temizlemek için gereklidir. Bu nedenle, kolaylık ve bakım kolaylığı için merge deyimini bir pakette kullanmayı düşünebilirsiniz.
Satın Alma Alışkanlıklarını İzle
Veri ambarı içindeki FactBuyingHabits tablosu, müşterinin belirli bir ürünü satın aldığı son tarihi izler. Tablo ProductID, CustomerID ve PurchaseDate sütunlarından oluşur. İşlem veritabanı her hafta, o hafta yapılan satın almaları içeren bir PurchaseRecords tablosu oluşturur. Amaç, PurchaseRecords tablosundaki bilgileri FactBuyingHabits tablosuyla birleştirmek için tek bir MERGE deyimi kullanmaktır. Var olmayan ürün-müşteri çiftleri için, MERGE ifadesi yeni satırlar ekler. Mevcut ürün-müşteri çiftleri için MERGE deyimi en son satın alma tarihini güncelleştirir.
Fiyat Geçmişini İzle
DimBook tablosu, bir kitap satıcısının envanterindeki kitap listesini temsil eder ve her kitabın fiyat geçmişini tanımlar. Bu tabloda şu sütunlar bulunur: ISBN, ProductID, Price, Raf ve IsCurrent. Bu tabloda ayrıca kitabın sahip olduğu her fiyat için bir satır vardır. Bu satırlardan biri geçerli fiyatı içerir. Geçerli fiyatı içeren satırı belirtmek için, bu satırın IsCurrent sütununun değeri 1 olarak ayarlanır.
Veritabanı her hafta, haftanın fiyat değişikliklerini ve hafta boyunca eklenen yeni kitapları içeren bir WeeklyChanges tablosu oluşturur. Tek bir MERGE deyimi kullanarak WeeklyChanges tablosundaki değişiklikleri DimBook tablosuna uygulayabilirsiniz. MERGE deyimi, yeni eklenen kitaplar için yeni satırlar ekler ve fiyatları değişen mevcut kitapların satırları için IsCurrent sütununu 0 olarak güncelleştirir. MERGE deyimi ayrıca fiyatları değiştirilmiş kitaplar için yeni satırlar ekler ve bu yeni satırlar için IsCurrent sütununun değerini 1 olarak ayarlar.
Yeni Verileri Eski Tabloda Birleştirme
Veritabanı, bir nesnenin özelliklerini "açık şema" kullanarak modeller, yani bir tablo her özellik için ad-değer çiftleri içerir. Özellikler tablosunun üç sütunu vardır: EntityID, PropertyID ve Value. Tablonun daha yeni bir sürümü olan NewProperties tablosunun Özellikler tablosuyla eşitlenmesi gerekir. Bu iki tabloyu eşitlemek için, aşağıdaki işlemleri gerçekleştirmek için tek bir MERGE deyimi kullanabilirsiniz:
Eğer YeniÖzellikler tablosunda mevcut değillerse, Özellikler tablosundan özellikleri silin.
Özellikler tablosundaki özelliklerin değerlerini NewProperties tablosunda bulunan yeni değerlerle güncelleştirin.
NewProperties tablosunda bulunan ancak Özellikler tablosunda bulunmayan özellikler için yeni özellikler ekleyin.
Bu yaklaşım, çoğaltma senaryolarına benzeyen senaryolarda yararlıdır ve burada amaç, iki sunucudaki iki tablodaki verileri eşitlenmiş olarak tutmaktır.
Stok Takip Et
Inventory veritabanında ProductID ve StockOnHand sütunlarını içeren bir ProductsInventory tablosu vardır. ProductID, CustomerID ve Quantity sütunlarını içeren Sevkiyatlar tablosu, ürünlerin müşterilere sevkiyatlarını izler. ProductInventory tablosunun Sevkiyatlar tablosundaki bilgilere göre günlük olarak güncelleştirilmiş olması gerekir. Tek bir MERGE deyimi, productInventory tablosundaki stoku yapılan sevkiyatlara göre azaltabilir. Bir ürünün envanteri 0'a düşürüldüyse, bu MERGE deyimi bu ürün satırını ProductInventory tablosundan da silebilir.