IF OBJECT_ID('stage.sp_MrgAdatszolgaltatasENaplo') IS NOT NULL BEGIN DROP PROCEDURE stage.sp_MrgAdatszolgaltatasENaplo END GO CREATE PROCEDURE stage.sp_MrgAdatszolgaltatasENaplo AS BEGIN MERGE stage.T_ADATSZOLGALTATASENAPLO_STAGE AS trg USING ( SELECT AdatszolgaltatasENaplo.C_INTEZMENYID AS C_INTEZMENYID ,tanev.C_NEV AS C_TANEVNEV ,AdatszolgaltatasENaplo.ID AS C_ADATSZOLGALTATASENAPLOID ,AdatszolgaltatasENaplo.C_ENAPLOHASZNALATA AS C_ENAPLOHASZNALATA ,AdatszolgaltatasENaplo.C_MUKODOPROJEKTOROKSZAMA AS C_MUKODOPROJEKTOROKSZAMA ,AdatszolgaltatasENaplo.C_PROJEKTOROKSZAMA AS C_PROJEKTOROKSZAMA ,AdatszolgaltatasENaplo.C_TERMEKSZAMA AS C_TERMEKSZAMA ,AdatszolgaltatasENaplo.C_WIFIELERES AS C_WIFIELERES ,AdatszolgaltatasENaplo.C_WIFILEFEDETTTERMEKSZAMA AS C_WIFILEFEDETTTERMEKSZAMA FROM dbo.T_ADATSZOLGALTATASENAPLO AdatszolgaltatasENaplo INNER JOIN dbo.T_TANEV tanev ON tanev.ID = AdatszolgaltatasENaplo.C_TANEVID WHERE AdatszolgaltatasENaplo.TOROLT = 'F' ) src ON (trg.C_INTEZMENYID = src.C_INTEZMENYID AND trg.C_ADATSZOLGALTATASENAPLOID = src.C_ADATSZOLGALTATASENAPLOID) WHEN MATCHED AND (trg.C_ENAPLOHASZNALATA <> src.C_ENAPLOHASZNALATA OR (trg.C_ENAPLOHASZNALATA IS NULL AND src.C_ENAPLOHASZNALATA IS NOT NULL) OR (trg.C_ENAPLOHASZNALATA IS NOT NULL AND src.C_ENAPLOHASZNALATA IS NULL)) OR (trg.C_MUKODOPROJEKTOROKSZAMA <> src.C_MUKODOPROJEKTOROKSZAMA OR (trg.C_MUKODOPROJEKTOROKSZAMA IS NULL AND src.C_MUKODOPROJEKTOROKSZAMA IS NOT NULL) OR (trg.C_MUKODOPROJEKTOROKSZAMA IS NOT NULL AND src.C_MUKODOPROJEKTOROKSZAMA IS NULL)) OR (trg.C_PROJEKTOROKSZAMA <> src.C_PROJEKTOROKSZAMA OR (trg.C_PROJEKTOROKSZAMA IS NULL AND src.C_PROJEKTOROKSZAMA IS NOT NULL) OR (trg.C_PROJEKTOROKSZAMA IS NOT NULL AND src.C_PROJEKTOROKSZAMA IS NULL)) OR (trg.C_TERMEKSZAMA <> src.C_TERMEKSZAMA OR (trg.C_TERMEKSZAMA IS NULL AND src.C_TERMEKSZAMA IS NOT NULL) OR (trg.C_TERMEKSZAMA IS NOT NULL AND src.C_TERMEKSZAMA IS NULL)) OR (trg.C_WIFIELERES <> src.C_WIFIELERES OR (trg.C_WIFIELERES IS NULL AND src.C_WIFIELERES IS NOT NULL) OR (trg.C_WIFIELERES IS NOT NULL AND src.C_WIFIELERES IS NULL)) OR (trg.C_WIFILEFEDETTTERMEKSZAMA <> src.C_WIFILEFEDETTTERMEKSZAMA OR (trg.C_WIFILEFEDETTTERMEKSZAMA IS NULL AND src.C_WIFILEFEDETTTERMEKSZAMA IS NOT NULL) OR (trg.C_WIFILEFEDETTTERMEKSZAMA IS NOT NULL AND src.C_WIFILEFEDETTTERMEKSZAMA IS NULL)) THEN UPDATE SET trg.C_ENAPLOHASZNALATA = src.C_ENAPLOHASZNALATA ,trg.C_MUKODOPROJEKTOROKSZAMA = src.C_MUKODOPROJEKTOROKSZAMA ,trg.C_PROJEKTOROKSZAMA = src.C_PROJEKTOROKSZAMA ,trg.C_TERMEKSZAMA = src.C_TERMEKSZAMA ,trg.C_WIFIELERES = src.C_WIFIELERES ,trg.C_WIFILEFEDETTTERMEKSZAMA = src.C_WIFILEFEDETTTERMEKSZAMA ,trg.LASTCHANGED = GETDATE() WHEN NOT MATCHED BY TARGET THEN INSERT ( C_INTEZMENYID ,C_TANEVNEV ,C_ADATSZOLGALTATASENAPLOID ,C_ENAPLOHASZNALATA ,C_MUKODOPROJEKTOROKSZAMA ,C_PROJEKTOROKSZAMA ,C_TERMEKSZAMA ,C_WIFIELERES ,C_WIFILEFEDETTTERMEKSZAMA ,TOROLT ,LASTCHANGED ,CREATED ) VALUES ( src.C_INTEZMENYID ,src.C_TANEVNEV ,src.C_ADATSZOLGALTATASENAPLOID ,src.C_ENAPLOHASZNALATA ,src.C_MUKODOPROJEKTOROKSZAMA ,src.C_PROJEKTOROKSZAMA ,src.C_TERMEKSZAMA ,src.C_WIFIELERES ,src.C_WIFILEFEDETTTERMEKSZAMA ,'F' ,GETDATE() ,GETDATE() ) WHEN NOT MATCHED BY SOURCE AND trg.TOROLT = 'F' THEN UPDATE SET trg.LASTCHANGED = GETDATE(), trg.TOROLT = 'T'; END GO