SqlServer存储过程Merge数据进行新增或者更新

本文介绍了一种在SQL Server中通过存储过程实现Merge操作的方法,用于高效地处理临时表与目标表之间的数据新增或更新。当临时表(temp_table_name)中有数据时,存储过程会根据ID进行匹配,匹配到的行更新相应字段,未匹配到的目标表中新插入记录。未匹配到源表的数据则不会进行操作。最后,存储过程会清空临时表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

use [database_name]
go
set ansi_nulls on
go
set quoted_identifier on
go
create procedure PROCEDURE_IMPORT_{upper(table_name)}
as
begin
    begin try
        begin transaction;
            if ((select count(1) from [temp_table_name])> 0)
              begin
                merge into [table_name] t using [temp_table_name] temp on t.[id] = temp.[id]
                  when matched 
                    then
                    update
                    set 
                      t.[field_name_1] = temp.[field_name_1],
                        t.[field_name_2] = temp.[field_name_2],
                        t.[field_name_3] = temp.[field_name_3],
                        t.[field_name_n] = temp.[field_name_n]
                  when not matched by target
                    then
                    insert
               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值