UPSERT in SSIS

前端 未结 8 1167
生来不讨喜
生来不讨喜 2021-01-03 00:37

I am writing an SSIS package to run on SQL Server 2008. How do you do an UPSERT in SSIS?

IF KEY NOT EXISTS
  INSERT
ELSE
  IF DATA CHANGED
    UPDATE
  ENDIF
ENDI         


        
8条回答
  •  难免孤独
    2021-01-03 01:37

    Another way to create an upsert in sql (if you have pre-stage or stage tables):

    --Insert Portion
    INSERT INTO FinalTable
    ( Colums )
    SELECT T.TempColumns
    FROM TempTable T
    WHERE
    (
        SELECT 'Bam'
        FROM FinalTable F
        WHERE F.Key(s) = T.Key(s)
    ) IS NULL
    
    --Update Portion
    UPDATE FinalTable
    SET NonKeyColumn(s) = T.TempNonKeyColumn(s)
    FROM TempTable T
    WHERE FinalTable.Key(s) = T.Key(s)
        AND CHECKSUM(FinalTable.NonKeyColumn(s)) <> CHECKSUM(T.NonKeyColumn(s))
    

提交回复
热议问题