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