96 lines
3.8 KiB
Transact-SQL
96 lines
3.8 KiB
Transact-SQL
IF OBJECT_ID('stage.sp_MrgMukodesihely') IS NOT NULL BEGIN
|
|
DROP PROCEDURE stage.sp_MrgMukodesihely
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE stage.sp_MrgMukodesihely
|
|
AS
|
|
BEGIN
|
|
MERGE stage.T_MUKODESIHELY_STAGE AS trg
|
|
USING (
|
|
SELECT
|
|
m.C_INTEZMENYID AS C_INTEZMENYID
|
|
,t.C_NEV AS C_TANEVNEV
|
|
,m.ID AS C_MUKODESIHELYID
|
|
,m.C_NEV
|
|
,m.C_EMAILCIM
|
|
,m.C_FAX
|
|
,m.C_IRANYITOSZAM
|
|
,m.C_TELEFONSZAM
|
|
,m.C_VAROS
|
|
,m.C_VEZETONEVE
|
|
,m.C_TAGINTEZMENY
|
|
,m.C_TAGINTEZMENYIKOD
|
|
,m.C_SZEKHELY
|
|
FROM dbo.T_MUKODESIHELY m
|
|
INNER JOIN dbo.T_TANEV t ON t.ID = m.C_TANEVID
|
|
WHERE m.TOROLT = 'F'
|
|
) src ON (trg.C_INTEZMENYID = src.C_INTEZMENYID AND trg.C_MUKODESIHELYID = src.C_MUKODESIHELYID)
|
|
WHEN MATCHED AND
|
|
(trg.C_NEV <> src.C_NEV OR (trg.C_NEV IS NULL AND src.C_NEV IS NOT NULL) OR (trg.C_NEV IS NOT NULL AND src.C_NEV IS NULL))
|
|
OR (trg.C_EMAILCIM <> src.C_EMAILCIM OR (trg.C_EMAILCIM IS NULL AND src.C_EMAILCIM IS NOT NULL) OR (trg.C_EMAILCIM IS NOT NULL AND src.C_EMAILCIM IS NULL))
|
|
OR (trg.C_FAX <> src.C_FAX OR (trg.C_FAX IS NULL AND src.C_FAX IS NOT NULL) OR (trg.C_FAX IS NOT NULL AND src.C_FAX IS NULL))
|
|
OR (trg.C_IRANYITOSZAM <> src.C_IRANYITOSZAM OR (trg.C_IRANYITOSZAM IS NULL AND src.C_IRANYITOSZAM IS NOT NULL) OR (trg.C_IRANYITOSZAM IS NOT NULL AND src.C_IRANYITOSZAM IS NULL))
|
|
OR (trg.C_TELEFONSZAM <> src.C_TELEFONSZAM OR (trg.C_TELEFONSZAM IS NULL AND src.C_TELEFONSZAM IS NOT NULL) OR (trg.C_TELEFONSZAM IS NOT NULL AND src.C_TELEFONSZAM IS NULL))
|
|
OR (trg.C_VAROS <> src.C_VAROS OR (trg.C_VAROS IS NULL AND src.C_VAROS IS NOT NULL) OR (trg.C_VAROS IS NOT NULL AND src.C_VAROS IS NULL))
|
|
OR (trg.C_VEZETONEVE <> src.C_VEZETONEVE OR (trg.C_VEZETONEVE IS NULL AND src.C_VEZETONEVE IS NOT NULL) OR (trg.C_VEZETONEVE IS NOT NULL AND src.C_VEZETONEVE IS NULL))
|
|
OR (trg.C_TAGINTEZMENY <> src.C_TAGINTEZMENY OR (trg.C_TAGINTEZMENY IS NULL AND src.C_TAGINTEZMENY IS NOT NULL) OR (trg.C_TAGINTEZMENY IS NOT NULL AND src.C_TAGINTEZMENY IS NULL))
|
|
OR (trg.C_TAGINTEZMENYIKOD <> src.C_TAGINTEZMENYIKOD OR (trg.C_TAGINTEZMENYIKOD IS NULL AND src.C_TAGINTEZMENYIKOD IS NOT NULL) OR (trg.C_TAGINTEZMENYIKOD IS NOT NULL AND src.C_TAGINTEZMENYIKOD IS NULL))
|
|
OR (trg.C_SZEKHELY <> src.C_SZEKHELY OR (trg.C_SZEKHELY IS NULL AND src.C_SZEKHELY IS NOT NULL) OR (trg.C_SZEKHELY IS NOT NULL AND src.C_SZEKHELY IS NULL))
|
|
THEN
|
|
UPDATE SET
|
|
trg.C_NEV = src.C_NEV
|
|
,trg.C_EMAILCIM = src.C_EMAILCIM
|
|
,trg.C_FAX = src.C_FAX
|
|
,trg.C_IRANYITOSZAM = src.C_IRANYITOSZAM
|
|
,trg.C_TELEFONSZAM = src.C_TELEFONSZAM
|
|
,trg.C_VAROS = src.C_VAROS
|
|
,trg.C_VEZETONEVE = src.C_VEZETONEVE
|
|
,trg.C_TAGINTEZMENY = src.C_TAGINTEZMENY
|
|
,trg.C_TAGINTEZMENYIKOD = src.C_TAGINTEZMENYIKOD
|
|
,trg.C_SZEKHELY = src.C_SZEKHELY
|
|
,trg.LASTCHANGED = GETDATE()
|
|
WHEN NOT MATCHED BY TARGET THEN
|
|
INSERT (
|
|
C_INTEZMENYID
|
|
,C_TANEVNEV
|
|
,C_MUKODESIHELYID
|
|
,C_NEV
|
|
,C_EMAILCIM
|
|
,C_FAX
|
|
,C_IRANYITOSZAM
|
|
,C_TELEFONSZAM
|
|
,C_VAROS
|
|
,C_VEZETONEVE
|
|
,C_TAGINTEZMENY
|
|
,C_TAGINTEZMENYIKOD
|
|
,C_SZEKHELY
|
|
,TOROLT
|
|
,LASTCHANGED
|
|
,CREATED
|
|
) VALUES (
|
|
src.C_INTEZMENYID
|
|
,src.C_TANEVNEV
|
|
,src.C_MUKODESIHELYID
|
|
,src.C_NEV
|
|
,src.C_EMAILCIM
|
|
,src.C_FAX
|
|
,src.C_IRANYITOSZAM
|
|
,src.C_TELEFONSZAM
|
|
,src.C_VAROS
|
|
,src.C_VEZETONEVE
|
|
,src.C_TAGINTEZMENY
|
|
,src.C_TAGINTEZMENYIKOD
|
|
,src.C_SZEKHELY
|
|
,'F'
|
|
,GETDATE()
|
|
,GETDATE()
|
|
)
|
|
WHEN NOT MATCHED BY SOURCE AND trg.TOROLT = 'F' THEN
|
|
UPDATE SET
|
|
trg.LASTCHANGED = GETDATE(),
|
|
trg.TOROLT = 'T'
|
|
;
|
|
END
|
|
GO
|
|
|