INSERT INTO dbo.DimCustomer (<champs>)
SELECT *
FROM dbo.StageCustomer AS stg
WHERE NOT EXISTS
(SELECT * FROM dbo.DimCustomer AS dim
WHERE dim.CustomerAlternateKey = stg.CustomerAlternateKey);
-- Mise à jour de Type 1 (change <champ1>, <champ2>... sur place)
UPDATE dbo.DimCustomer
SET <champ1> = stg.<champ1>,
<champ2> = stg.<champ2>
FROM DimCustomer dim inner join StageCustomer stg
ON dim.CustomerAlternateKey = stg.CustomerAlternateKey
WHERE dim.<champ1> <> stg.<champ1> OR dim.<champ2> <> stg.<champ2>
-- Mise à jour de Type 2 updates (des changements de <champ3> déclanche une nouvelle entrée)
INSERT INTO dbo.DimCustomer
SELECT <Champs>
FROM dbo.StageCustomer AS stg
JOIN dbo.DimCustomer AS dim
ON stg.CustomerAlternateKey = dim.CustomerAlternateKey
AND stg.<champ3> <> dim.<champ3>;