SqlServer UpSert 实现方式(存在则更新,否则插入)
方法1:先查询,根据查询结果判断使用insert或者update IF EXISTS (SELECT 1 FROM table_A WHERE Id = @Id) BEGIN UPDATE dbo.table_A SET Value = @Value WHERE Id = @Id; END ELSE BEGIN INSERT INTO dbo.table_A (Id, Value) VALUES(@Id, @Value) END 方法2:先更新,根据更新结果影响的条目数判断是否需要插入 UPDATE dbo.table_A SET Value = @Value WHERE Id = @Id; IF(@@ROWCOUNT = 0) BEGIN INSERT INTO dbo.table_A (Id, Value) VALUES(@Id, @Value) END 方法3:使用MERGE语句,将待upsert的数据作为source,merge到目标表 MERGE INTO table_A as T USING (SELECT @Id AS id, @Value AS value ) AS S ON T.Id = S.id WHEN MATCHED THEN UPDATE SET T.Value = S.value WHEN NOT MATCHED THEN INSERT(Id, Value) VALUES(S.id, S.value);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)