75 lines
3.7 KiB
Transact-SQL
75 lines
3.7 KiB
Transact-SQL
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
|