2012-03-30 16 views
5

SQL Server 2008'de 2 tane özdeş tablo var, bunlardan biri uygulamamın sürekli olarak kullanıldığı "Live" tablosudur. Yeni kayıtları günlük olarak çekiyorum ve yeni kayıtları çekip Canlı masaya eklemem gereken "aşama" tablosuna yerleştiriyorum. Bazı kayıtların çakışması durumunda herhangi bir kopyanın eklenmesini istemiyorum. Özdeş bir kaydın var olup olmadığını görmek için bakmam gereken 10 sütun var, bazı TSQL örneklerine baktım ama şu ana kadar hiçbiri çalışmıyor, ayrıca duples ile uğraşmayı düşündüm ve sadece DISTINCT değerlerini rapor ediyordum ama DISTINCT one Bir kayıt için çalışıyor, 10 için çalışmak gerekiyor. Herhangi bir öneri?Canlı tabloyu kayıt tablosundan kayıtlarla doldurma

sayesinde Sam

cevap

5

Bu NOT EXISTS için ideal bir kullanım durumu - Eğer bir dupe eklemek olmaz doğrulamak için istediğiniz kadar pek çok kriteri kontrol edebilirsiniz.

INSERT INTO Live 
SELECT <fields> 
FROM Staging s 
WHERE NOT EXISTS (SELECT 1 
        FROM Live l 
        WHERE s.FieldA = l.FieldA 
        AND s.FieldB = l.FieldB 
        <all your checks here>...) 
+0

Bu harika çalışıyor, teşekkürler! –

+0

@SamCromer yardım etmekten mutluluk duyar. – JNK