简体   繁体   English

检查数据是否存在更新,否则插入SQL Server链接服务器

[英]Check if data exist update else insert in SQL Server linked server

I try to insert data from table in another. 我尝试从另一个表插入数据。 I want to check all rows, if row exists, just update, if row does not exist, insert it (based on ID ). 我想检查所有行,如果行存在,则进行更新,如果行不存在,则将其插入(基于ID )。

I have this insert statement: 我有这个insert语句:

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

if Id exist just update with new value else insert 如果Id存在,则只需更新新值,否则插入

I want to make it run dynamically using job in SQL Server 我想让它使用SQL Server中的作业动态运行

Try the following MERGE script 尝试以下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
    ;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM