beginor
7/24/2017 - 2:36 AM

sqlserver merge table demo

sqlserver merge table demo

MERGE into dbo.water_quality_data_his AS target
USING dbo.water_quality_data_his_temp AS source
ON (target.id = source.id)
    WHEN MATCHED
        THEN UPDATE SET
        target.[id] = source.[id],
        target.[point_id] = source.[point_id],
        target.[item_id] = source.[item_id],
        target.[item_name] = source.[item_name],
        target.[item_unit] = source.[item_unit],
        target.[value] = source.[value],
        target.[moni_time] = source.[moni_time],
        target.[flag] = source.[flag],
        target.[lower_limit] = source.[lower_limit],
        target.[upper_limit] = source.[upper_limit],
        target.[dec] = source.[dec],
        target.[update_time] = source.[update_time]
    when not matched by target
        then insert
        values(
            source.[id],
            source.[point_id],
            source.[item_id],
            source.[item_name],
            source.[item_unit],
            source.[value],
            source.[moni_time],
            source.[flag],
            source.[lower_limit],
            source.[upper_limit],
            source.[dec],
            source.[update_time]
        );
    --when not matched by source
    --    then delete
    --OUTPUT $action, Inserted.*, Deleted.*;