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
 |