57 lines
2.2 KiB
Transact-SQL
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
|