2016-04-03 15 views
0

Başka bir tablodaki verileri veriye eklemeye çalışıyorum. Satır varsa, tüm satırları kontrol etmek istiyorum, sadece eğer mevcut değilse, güncelleyin (ID'u temel alarak). Ben şu deneyin, SQL ServerVerilerin var olup olmadığını kontrol edin SQL Server bağlantılı bir sunucuya başka bir güncelleştirme ekleyip eklemediğini kontrol edin

+0

'ME hakkında duydum RGE'nin ifadeleri? –

+0

NO, Bunu nasıl yapabilirim? –

+2

İşte işte burada ** [MERGE] (https://msdn.microsoft.com/en-in/library/bb510625.aspx) **. Bir deneyin –

cevap

0

işi kullanarak dinamik olarak çalıştırmak yapmak istiyorum

eklemek

insert into d1.dbo.UrlRecord (EntityId, EntityName, Slug, IsActive, LanguageId) 
    select 
     Id, 'Category', 
     REPLACE(Name, ' ', '-'), 1, 0 
    from d2.dbo.Category 

Id eğer sadece başka yeni değerle güncellemek bulunmamakta:

Bu insert bildirimde bulunmamış Birleştirme bildirimi

MERGE d1.dbo.UrlRecord TT 
USING  
(
SELECT 
Id,'Category' as EntityName,REPLACE(Name,' ','-') as Slug,1 as IsActive,0 as LanguageID 
FROM d2.dbo.Category 
)ST on TT.EntityId = ST.id 
WHEN NOT MATCHED THEN 
    INSERT (EntityId,EntityName,Slug,IsActive,LanguageId) 
    VALUES (ST.Id,ST.EntityName,ST.Slug, ST.IsActive,ST.LanguageID) 
WHEN MATCHED THEN 
    UPDATE 
    SET 
    TT.EntityName = ST.EntityName, 
    TT.Slug = ST.Slug, 
    TT.IsActive = ST.IsActive, 
    TT.LanguageId=ST.LanguageID 
    ; 
İlgili konular