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

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
               

你可能感兴趣的:(数据库,存储过程,sqlserver)