2016-04-03 20 views
0

別のテーブルにデータを挿入しようとしています。行が存在する場合はすべての行をチェックしたい、行が存在しない場合は更新するだけで、それを挿入する(IDに基づいて)。私はそれが次のことを試してみてくださいSQL Serverでデータが存在するかどうかを確認するその他SQL Serverのリンクサーバーに挿入する

+0

「ME RGE声明? –

+0

いいえ、どうすればいいですか –

+2

ここに行きます** [MERGE](https://msdn.microsoft.com/en-in/library/bb510625.aspx)**。それを試してください –

答えて

0

仕事を使用して動的に実行したい

挿入

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

Id場合は、単に他の新しい値で更新して存在:

私はこのinsert文を持っていますMERGEスクリプト

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 
    ; 
関連する問題