kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170613130116_KRETA_1774/sp_MrgIntezmenyAdatszolgaltatasok.sql
2024-03-13 00:33:46 +01:00

57 lines
2.2 KiB
Transact-SQL

IF OBJECT_ID('stage.sp_MrgIntezmenyAdatszolgaltatasok') IS NOT NULL BEGIN
DROP PROCEDURE stage.sp_MrgIntezmenyAdatszolgaltatasok
END
GO
CREATE PROCEDURE stage.sp_MrgIntezmenyAdatszolgaltatasok
AS
BEGIN
MERGE stage.T_INTEZMENYADATSZOLG_STAGE AS trg
USING (
SELECT
i.ID AS C_INTEZMENYID,
t.C_NEV AS C_TANEVNEV,
ia.ID AS C_INTEZMENYADATSZOLGID,
ia.C_SZAKBEIRATKFELVETT AS C_SZAKBEIRATKFELVETT,
ia.C_SZAKBEIRATKJELENTKEZETT AS C_SZAKBEIRATKJELENTKEZETT,
ia.TOROLT AS TOROLT
FROM T_INTEZMENYADATSZOLGALTATAS ia
INNER JOIN T_INTEZMENY i ON i.ID = ia.C_INTEZMENYID
INNER JOIN T_TANEV t ON t.ID = ia.C_TANEVID
WHERE ia.TOROLT = 'F' AND t.TOROLT = 'F' AND i.TOROLT = 'F'
) src ON (trg.C_INTEZMENYID = src.C_INTEZMENYID AND trg.C_INTEZMENYADATSZOLGID = src.C_INTEZMENYADATSZOLGID)
WHEN MATCHED AND
(trg.C_SZAKBEIRATKFELVETT <> src.C_SZAKBEIRATKFELVETT OR (trg.C_SZAKBEIRATKFELVETT IS NULL AND src.C_SZAKBEIRATKFELVETT IS NOT NULL) OR (trg.C_SZAKBEIRATKFELVETT IS NOT NULL AND src.C_SZAKBEIRATKFELVETT IS NULL))
OR (trg.C_SZAKBEIRATKJELENTKEZETT <> src.C_SZAKBEIRATKJELENTKEZETT OR (trg.C_SZAKBEIRATKJELENTKEZETT IS NULL AND src.C_SZAKBEIRATKJELENTKEZETT IS NOT NULL) OR (trg.C_SZAKBEIRATKJELENTKEZETT IS NOT NULL AND src.C_SZAKBEIRATKJELENTKEZETT IS NULL))
THEN
UPDATE SET
trg.C_SZAKBEIRATKFELVETT = src.C_SZAKBEIRATKFELVETT
,trg.C_SZAKBEIRATKJELENTKEZETT = src.C_SZAKBEIRATKJELENTKEZETT
,trg.TOROLT = src.TOROLT
,trg.LASTCHANGED = GETDATE()
WHEN NOT MATCHED BY TARGET THEN
INSERT (
C_INTEZMENYID,
C_TANEVNEV,
C_INTEZMENYADATSZOLGID,
C_SZAKBEIRATKFELVETT,
C_SZAKBEIRATKJELENTKEZETT,
TOROLT,
LASTCHANGED,
CREATED
) VALUES (
src.C_INTEZMENYID,
src.C_TANEVNEV,
src.C_INTEZMENYADATSZOLGID,
src.C_SZAKBEIRATKFELVETT,
src.C_SZAKBEIRATKJELENTKEZETT,
'F',
GETDATE(),
GETDATE()
)
WHEN NOT MATCHED BY SOURCE AND trg.TOROLT = 'F' THEN
UPDATE SET
trg.LASTCHANGED = GETDATE(),
trg.TOROLT = 'T';
END
GO