• i hv return logic but i m not sure about it

    -- Insert duplicate

    ;with CTE (id,name,age) as

    (

    Select id,name,age from stage

    Intersect

    Select id,name,age from master

    )

    INSERT INTO History

    Select id,name,age from cte

    -- New record

    insert into Master(id,name,age)

    Select s.id,s.name,s.age

    from stage s

    left join master M

    on M.id=s.id

    where M.id is null

    -- Update Existing

    ;with CTE (id,name,age) as

    (

    Select id,name,age from stage

    Except

    Select id,name,age from master

    )

    Update M

    SET M.name =C.name

    ,M.age = C.age

    FROM Master M JOIN CTE C

    on M.id=c.id